char devices without SI_UNMAPPED?

Warner Losh imp at bsdimp.com
Sun Dec 13 19:43:20 UTC 2020


On Sun, Dec 13, 2020 at 12:40 PM Konstantin Belousov <kostikbel at gmail.com>
wrote:

> On Sun, Dec 13, 2020 at 12:20:49PM -0700, Alan Somers wrote:
> > On Sun, Dec 13, 2020 at 11:20 AM Warner Losh <imp at bsdimp.com> wrote:
> >
> > >
> > >
> > > On Sun, Dec 13, 2020 at 11:18 AM Ian Lepore <ian at freebsd.org> wrote:
> > >
> > >> On Sun, 2020-12-13 at 10:27 -0700, alan somers wrote:
> > >> > I'm trying to exercise the aio code that handles character devices
> > >> > that
> > >> > don't set the SI_UNMAPPED flag.  But I can't find any.  Are there
> any
> > >> > remaining character devices that don't allow unmapped I/O?
> > >> >
> > >> > -Alan
> > >> >
> > >>
> > >> I assume you mean disk-like devices?  Probably mmcsd, flash/at45d,
> > >> flash/mx25l.
> > >>
> > >
> > Hm.  I don't have any of those.
> >
> >
> > >
> > > There are times that it's disabled administratively as well, but that
> may
> > > be on a per-I/O basis.
> > > vfs.zfs.vol.unmap_enabled: 1
> > >
> >
> > This one doesn't seem to work.  It looks like the only functionality it
> > gates these days is DIOCGDELETE.
> >
> >
> > > vfs.unmapped_buf_allowed: 1
> > >
> >
> > Well, this one works.  Thanks for the tip.  Unfortunately, it's a
> tunable,
> > so I can't use it for any kind of automated testing.
>
> There is enough geoms which do not support unmapped bios, even if only in
> some configurations.  Recursively grep for G_PF_ACCEPT_UNMAPPED in sys/geom
> to see what I mean.
>
> After all, an option for geom_nop should be trivial, to force all bios to
> map, instead of inheriting from the lower provider.
>

There's also several CAM SIMs that don't set the PIM_UNMAPPED flag either:

% grep -rl cam_sim_alloc . | wc
      58      58    1378
%  grep -lr PIM_UNMAPPED . | wc
      28      28     658

Warner


More information about the freebsd-hackers mailing list