On 9/1/16 4:04 PM, Arne Jansen wrote: > Hi, > > we've had problems with the persistent l2arc feature pulled from the > nexenta repo. Please see > > https://www.illumos.org/issues/7341 > > I'm still searching for a good way to fix this. Any help is greatly > appreciated. > > My favourite plan is to prevent those blocks from entering the l2arc in the > first place, but for this we would need a criterion l2arc_write_eligible > could > check. > As far as I currently understand it the buffer got dirtied during the > txg and > cleaned in the first sync pass. The second sync pass dirtied the buffer > again, > which didn't assign a new DVA to the buffer, as it already got CoW'ed in > this > txg. L2arc picked that block up right after the first sync pass. > > Is there a way to detect this from l2arc_write_eligible?
Interesting. Just FYI, the pL2ARC work hasn't been upstreamed yet. My current working copy is on github: https://github.com/skiselkov/illumos-gate/tree/3525_l2arc_persist I hadn't anticipated that we could be picking up blocks in the syncing stage. Nevertheless, the simplest criterion I can see to fix this is to require that a block's b_birth is at least one less than spa_syncing_txg. -- Saso ------------------------------------------- openzfs-developer Archives: https://www.listbox.com/member/archive/274414/=now RSS Feed: https://www.listbox.com/member/archive/rss/274414/28015062-cce53afa Modify Your Subscription: https://www.listbox.com/member/?member_id=28015062&id_secret=28015062-f966d51c Powered by Listbox: http://www.listbox.com
