[ENBD] kernel message "non existant block device"
Peter T. Breuer
ptb@it.uc3m.es
Mon, 30 Oct 2000 10:09:17 +0100 (MET)
"A month of sundays ago Wang Gang wrote:"
Peter, I have got nbd-2.2.29, but under kernel 2.2.16, the problem
still occur, I will try it under kernel 2.2.15.
The kernel will make no difference. If you are still getting the
"problem" (and I do not believe it is a problem, since it is a
natural result of the VFS activity filling the memory
with buffers and then the tcp stack colliding with it), then you
are running without -o sync on a very fast machine!
Repeat the test with
mount -o remount,sync /dev/nda
You must run mirrored fileystems -o sync in any case, or the changes
in memory will not make it to "disk".
The two lines you mentioned are enough on my 300MHz machine, but I am
also running with aditional changes that throttle under more conditions
and apply the throttle under fewer. That is, I have your two lines
enclosed with if (we have enough work to do already) { ... }.
And I have replaced the pointer that normally is unplug_device
in blk_dev[NBD_MAJOR].tq_plug.routine with nbd_unplug_device,
where the latter does if (we still have enough work to do already) {
reschedule ourselves for next scheduler run; return;}
unplug_device(dev);
The details are visible in the 2.4.15 driver code
(http://www.it.uc3m.es/ptb/nbd/src/)
I'll post fuller details when I get to work.
Peter