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@xxxxxxxxxx> 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.
Attachment:
signature.asc
Description: Digital signature