On Wed, Apr 29, 2015 at 07:13:27AM -0700, Kevin Cernekee wrote:
On Wed, Apr 29, 2015 at 3:40 AM, Mark Brown broonie@kernel.org wrote:
Like I said above we can tell if the hardware was reset because mark_dirty() is called.
That covers the public API, but I do not understand how you intended for this data to be stored in the rbtree if the use of a dirty bitmask is discouraged.
We just need a single boolean?
i.e. regcache_sync() finds a register value marked "present". How do we know whether we need to write it back to the hardware? For the special case of "cached non default register values immediately after a HW reset" you can mostly figure this out, but if there was no HW reset how do we know which entries changed while the HW was inaccessible?
In the first instance do we care?
I'm not suggesting that we do anything based on the presence of a cache entry, I'm suggesting that we could avoid having to ever cache values that never get referenced on a system (which can be a lot of them for common use cases) saving us memory.
This seems to be solving a different problem. It sounds like you are more worried about regcache_sync() writing back lots of default values for registers that were never touched, than performing unnecessary writes to a few (actively used) registers that weren't changed while we were in cache_only mode. Is that accurate?
No. This is nothing to do with sync, it's just something that might be nice.