[Hi Andy - care to properly line break after ~75 character, that
makes
ready the message a lot easier, thanks!]
My bad.
> The instructions give you very fine-grain flushing control, but
the
> downside is that the app must track what it changes at that fine
> granularity. Both models work, but there's a trade-off.
No, the cache flush model simply does not work without a lot of hard
work to enable it first.
It's working well enough to pass tests that simulate crashes and
various workload tests for the apps involved. And I agree there
has been a lot of hard work behind it. I guess I'm not sure why you're
saying it is impossible or not working.
Let's take an example: an app uses fallocate() to create a DAX file,
mmap() to map it, msync() to flush changes. The app follows POSIX
meaning it doesn't expect file metadata to be flushed magically, etc.
The app is tested carefully and it works correctly. Now the msync()
call used to flush stores is replaced by flushing instructions.
What's broken?
Thanks,
-andy