Re: Physbio changes final call for tests and reviews

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Sun, 3 Feb 2013 19:17:43 +0200
On Sun, Feb 03, 2013 at 05:46:24PM +0100, Marius Strobl wrote:
> On Sun, Feb 03, 2013 at 06:11:45PM +0200, Konstantin Belousov wrote:
> > On Sun, Feb 03, 2013 at 04:57:18PM +0100, Marius Strobl wrote:
> > > On Sat, Feb 02, 2013 at 06:33:22PM +0200, Konstantin Belousov wrote:
> > > > Hi,
> > > > I finished the last (insignificant) missed bits in the Jeff' physbio
> > > > work. Now I am asking for the last round of testing and review, esp. for
> > > > the !x86 architectures. Another testing focus are the SCSI HBAs and RAID
> > > > controllers which drivers are changed by the patchset. Please do test
> > > > this before the patchset is committed into HEAD !
> > > > 
> > > > The plan is to commit the patch somewhere in two weeks from this moment.
> > > > The patch is required for the finalizing of the unmapped I/O work for UFS
> > > > I did in parallel, which I hope to finish shortly after the commit.
> > > > 
> > > > Patch is available at http://people.freebsd.org/~kib/misc/physbio.5.diff
> > > > 
> > > 
> > > Once you bring in said UFS changes, will the use of bus_dmamap_load_ccb(9)
> > > be a requirement for disk controller drivers?
> > 
> > Generally speaking, no. I plan to do the gradual migration of the drivers,
> > definitely not forcing the unmapped bios down to the drivers which are
> > not tested yet. In the patch, driver indicates the support for unmapped
> > bios by a DISKFLAG. If flag is set, driver could receive both mapped
> > and unmapped bios, and use of the bus_dmamap_load_ccb(), while formally
> > is only convenience, is essentially the requirement.
> > 
> > If driver does not set the flag, it receives the same i/o requests as
> > it does now. Geom performs transient compat mapping for the unmapped
> > requests on its own for such drivers. As result, driver does not need
> > a change.
> > 
> > My plan is to convert ahci(4) and then some often used high-profile drivers
> > like mfi(4) and mps(4). I can also hope for isci(4) help.
> > 
> > Everything else, IMO, could be done on the best efforts basis, when both
> > developers time and testing facilities are available. Jeff wanted to do
> > all driver conversion in one pass, but IMO this is unrealistic. Still, I
> > started write some helpers which should provide the transient one-page
> > mappings for PIO modes.
> 
> Okay
> 
> > 
> > You can look at some previous version of the unmapped patch at
> > http://people.freebsd.org/~kib/misc/unmapped.8.patch. It only contain a
> > hack for ahci(4), which should be fixed properly after physbio is committed.
> 
> Hrm, the changes to the sparc64 pmap code in the latter patch might
> need some more attention as some of the functions used for copying
> pages there IIRC have constraints on the aligment of source and
> destination as well as on the count. Can you say something about
> these properties when pmap_copy_page_offs() is called via
> pmap_copy_pages()?

There is no constraints on the offsets or length for the
pmap_copy_pages() itself. As a consequence, the only (obvious)
constraint is that cnt <= PAGE_SIZE for sparc64 pmap_copy_page_offs(). I
will be glad to obtain the help, both as advise and patch, for any !x86
architecture. For x86 too.

Yes, pmap_copy_pages() is the corner-stone of the data moves needed
when operating on the unmapped buffers. Our current i/o path already
converts user buffers into the page list, but it was enough to use
uiomove_fromphys() so far, because buffers were always mapped. Now,
unmapped buffers provide the other side of the copy with the page list,
so I need operation like pmap_copy_pages().

Received on Sun Feb 03 2013 - 16:17:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:34 UTC