[ENBD] Re: ENBD on Debian 2.6.7/8 kernel

Peter Breuer ptb at linuxmail.org
Sat Oct 23 04:46:44 MDT 2004


 
"Also sprach Jason A. Pattie:"
> P.T. Breuer wrote:
> | I would try and see if there are any large forward jumps in time.c.
> |
> | if (timercmp(tv, &last_tv, <)) {
> |    static struct timeval extra_offset;
> |    timersub(&last_tv, tv, &extra_offset);
> |    if (extra_offset.tv_sec < 0) {
> |      PERR("time was %ld+%ldE-6 s and is %ld+%ldE-6 s\n", last_tv.tv_sec, last_tv.tv_usec, tv->tv_sec, tv->tv_usec);
> |    }
> |    timeradd(&offset, &extra_offset, &offset);
> |    *tv = last_tv; // PTB step 1us forward if we don't know any better
> |    if (++tv->tv_usec >= 1000000) {
> |      tv->tv_usec -= 1000000; tv->tv_sec ++;
> |    }
> |-}
> |+} else {
> |+   stuct timeval diff_tv;
> |+   timersub(tv, &last_tv, &diff_tv);
> |+   if (diff_tv.tv_sec > 300) {
> |+     PERR("time was %ld+%ldE-6 s and is %ld+%ldE-6 s\n",
> |+          last_tv.tv_sec, last_tv.tv_usec,
> |+          tv->tv_sec, tv->tv_usec);
> |+   }
> |+}

> manager made pidfile /var/run/enbd-client-disk2.pid with pid 2450
> 
> Oct 22 20:32:38 storageserver enbd-client: nbd/time  2450: <#  47> mygettimeofday time was 0+0E-6 s and is 1098495158+302029E-6 s

Well, that's the initial jump from 0 to something. So the new clause
detects what it should.

> Oct 22 20:32:38 storageserver enbd-client: enbd-client: client (-1) starts introduction sequence on storagenode2:10350
> Oct 22 20:32:38 storageserver enbd-client: enbd-client: client (-1) got size 7312244736
> Oct 22 20:32:38 storageserver enbd-client: enbd-client: client (-1) got signature [disk2], had []
> Oct 22 20:32:43 storageserver enbd-client: nbd/alarm  2443: <# 131> unchain_current_ualarm signalling ALRM for late (788.432078s) alarm 0xbfffe100
> Oct 22 20:32:43 storageserver enbd-client: nbd/alarm  2450: <# 131> unchain_current_ualarm signalling ALRM for late (788.556319s) alarm 0xbfffe100
> 

No large forward jump recorded before the alarm.

> I'm not exactly sure what that means or which PERR statement it's
> coming from.

It's from line 131 of alarm.c. 

> Hope this makes it to the list.  I don't think my previous post did.

I'm having comms difficulties for a different reason. Anyway, the
2.4.32 code works fine here on my dual SMP setup under kernel 2.6.8.1.
I've recompiled the static binaries and put them back up on the server
in the same place. They have a little more instrumentation in than
before.

I've also put one kernel module in the tgz, but you'll have to send me
a .config for me to be able to compile one for your kernel. The one I
compiled is SMP. I could include the whole compiled kernel I suppose ... 
ask me if you want it.

  ftp://oboe.it.uc3m.es/pub/Programs/enbd-2.4.32-bin-static.tgz

The other way round, how about you compiling the binaries static and
putting them somewhere where I can get them? You "only" have to set
LDFLAGS = -static in the Makefile. You can do it in nbd/Makefile.in
or in the Makefile that gets made in the build directory (I did the
latter).

I'm really puzzled about this and would like to get to the bottom of
it. If you run "while true; do date; done", you don't see any puzzling
jumps, do you?


Peter



-- 
______________________________________________
Check out the latest SMS services @ http://www.linuxmail.org 
This allows you to send and receive SMS through your mailbox.

Powered by Outblaze


More information about the ENBD mailing list