[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