In message <[EMAIL PROTECTED]>, Matthew Dillon writes:
> First, you are confusing the underlying swap devices that we swapon on
> with the parent swap device that controls them. The parent swap device
> needs to have a dev_t - it does not currently have one, and this is
> the entry point that the buffers are going into. The underlying swap
> devices *already* have a dev_t. My kernel crashes on a NULL bp->b_dev.
> In fact, it also crashes on a NULL vp->v_rdev.
And where in the code does this crash happen ?
> Second, the clustering done above the VN device is done by the
> filesystem and has no understanding of whether the underlying media
> controlled by the VN device can itself be clustered in the same way.
> When using swap as backing store what may appear to be clusterable
> by the filesystem may actually *NOT* be clusterable when you get into
> the swap device due to potentially non-contiguous mappings as well
> as border-crossings between interleaved swap devices.
So you need to cluster all the way through the VN device ? Obviously
clustering on just one side will not buy you anything. Tough luck...
It sounds more and more like the mistake here is for VN to have a
specfs VOP vector on top, I think it needs its own VOP vector so
it can get hold of the VOP_BMAP function...
--
Poul-Henning Kamp FreeBSD coreteam member
[EMAIL PROTECTED] "Real hackers run -current on their laptop."
FreeBSD -- It will take a long time before progress goes too far!
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message