> Date: Sun, 29 Aug 2010 22:26:14 +1000 > From: David Gwynne <l...@animata.net> > > this diff is largely a mechanical change. > > firstly, it makes struct bufq a member of the softc for devices > that use it, rather than it being a pointer to something that needs > to be allocated at attach. since all these devices need a bufq to > operate, it makes sense to have it allocated as part of the softc > and get bufq_init to just initialise all its fields. it also gets > rid of the possibility that you wont be able to allocate teh bufq > struct during attach, which is something you dont want to happen. > > secondly, it consistently implements a split between wrapper functions > and the per discipline implementation of the bufq handlers. it > consistently does the locking in the wrappers rather than doing > half in the wrappers and the other half in the implementations. > > it also consistently handles the outstanding bufq bq pointer in the > wrappers. > > this hides most of the implementation inside kern_bufq.c. the only > stuff left in buf.h is for the bits each implementation needs to > put bufs on their queues. > > ive tested this extensively on sd(4) and thib has tested this on > wd(4). we'd like some wider exposure, especially over suspends and > resumes on a variety of machines. i have tried to preserve the > locking semantics, but testing would be lovely. > > ok?
I realise you committed this already, but can you elaborate on those XXX's in there?