recent changes prohibit vinum swap.

Robert Watson rwatson at freebsd.org
Fri Sep 26 15:39:19 PDT 2003


On Fri, 26 Sep 2003, David Gilbert wrote:

> Recent changes to -CURRENT prohibit vinum swap: 
> 
> [1:6:306]root at mu:~> swapon /dev/vinum/swapmu swapon: /dev/vinum/swapmu:
> Operation not supported by device

In order to support swapping, Vinum will need to be modified to use struct
disk and the disk(9) API, rather than exposing its storage devices
directly via struct cdevsw and make_dev(9).  I.e., Vinum probably needs to
start approaching things as "disks" rather than "devices", a distinction
that's becoming more mature in -CURRENT.

>From a quick read of vinumconfig.c, I'm guessing this wouldn't be hard to
implement.  Some subset of struct sd, struct plex, and struct volume will
need to start holding a struct disk instance which would be passed to
disk_create() instead of a call to make_dev().  Much of the remainder will
just consist of a bit of tweaking to make Vinum extract its data from
bp->bio_disk->d_drv1 instead of bp->b_dev, replacing the ioctl dev_t
argument with a disk argument, etc.

I recently noticed that Vinum may be averse to blocksizes other than 512
bytes.  Or at least, I can get Vinum mirrors up and running on md devices
backed to memory, but not to swap, and the usual reason for problems on
that front is the 4k blocksize for swap-backed md devices.

I also noticed that the vinum commandline tool is a bit devfs-unfriendly,
or at least, it gets pretty verbose about how all the files/directories it
wants to create are already present.  It could be that a test for devfs
conditionally causing a test for EEXIST would go a long way in muffling
the somewhat loud complaining :-). 

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Network Associates Laboratories



More information about the freebsd-current mailing list