Alan Cox wrote:
> 
> > Obviously, something changed between 2.2.14 and more current
> > kernels which broke pump.  I don't believe it's a driver change
> > because it also affects the 3c90x driver.  I don't have a theory
> > as to why this affects the 3com NICs though.  But I'm assuming
> > that whatever broke pump also broke dhcpcd.
> 
> The classic thing that pump catches drivers with is that interface goes
> up/down/up in rapid succession. That broke the acenic driver at one point
> too

That's interesting.

The open() and probe() logic in the 2.2.18 driver is basically unchanged
since 2.2.14.  And 3com's driver breaks with pump too.  AFAIK it's
completely unchanged.

This makes one wonder what a successful return from open() actually
_means_.  Autonegotiation takes up to three seconds, and we return from open()
with it still in progress.  So the interface is not yet usable. 

> > I note that with 3c59x in 2.4.0, pump-0.7.3 basically freezes up.
> > It spits out a single bootp packet then goes to lunch.  I got
> > bored waiting after ten minutes. So an upgrade is definitely needed.
> 
> strace would be interesting

It's very sick.  It forks a daemon.  The child process gets to
the stage where it has written out your new /etc/resolv.conf
and then it gets stuck making no system calls, chewing 100%
of CPU.

Yes, it ups and downs the interface a couple of times,
but everything seems happy.  In fact, killing off the
bisbehaving pump leaves the interface in a working state,
so perhaps I have not in fact reproduced the problem.  Hopefully
Christian can retest with a later pump and let me know.

1801  read(6, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1748
1801  read(6, "", 4096)                 = 0
1801  close(6)                          = 0
1801  munmap(0x40014000, 4096)          = 0
1801  open("/etc/ld.so.cache", O_RDONLY) = 6
1801  fstat(6, {st_mode=S_IFREG|0644, st_size=24405, ...}) = 0
1801  mmap(NULL, 24405, PROT_READ, MAP_PRIVATE, 6, 0) = 0x40014000
1801  close(6)                          = 0
1801  open("/lib/libnss_files.so.2", O_RDONLY) = 6
1801  fstat(6, {st_mode=S_IFREG|0755, st_size=292788, ...}) = 0
1801  read(6, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\260\36"..., 4096) = 4096
1801  mmap(NULL, 37640, PROT_READ|PROT_EXEC, MAP_PRIVATE, 6, 0) = 0x40110000
1801  mprotect(0x40118000, 4872, PROT_NONE) = 0
1801  mmap(0x40118000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 6, 0x7000) = 
0x40118000
1801  close(6)                          = 0
1801  munmap(0x40014000, 24405)         = 0
1801  socket(PF_UNIX, SOCK_STREAM, 0)   = 6
1801  connect(6, {sin_family=AF_UNIX, path="
               /var/run/.nscd_socket"}, 110) = -1 ENOENT (No such file or directory)
1801  close(6)                          = 0
1801  open("/etc/host.conf", O_RDONLY)  = 6
1801  fstat(6, {st_mode=S_IFREG|0644, st_size=26, ...}) = 0
1801  mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x40014000
1801  read(6, "order hosts,bind\nmulti on\n", 4096) = 26
1801  read(6, "", 4096)                 = 0
1801  close(6)                          = 0
1801  munmap(0x40014000, 4096)          = 0
1801  open("/etc/hosts", O_RDONLY)      = 6
1801  fcntl(6, F_GETFD)                 = 0
1801  fcntl(6, F_SETFD, FD_CLOEXEC)     = 0
1801  fstat(6, {st_mode=S_IFREG|0644, st_size=314, ...}) = 0
1801  mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x40014000
1801  read(6, "10.0.0.15\t\tmnm.uow.edu.au mnm\n10"..., 4096) = 314
1801  read(6, "", 4096)                 = 0
1801  close(6)                          = 0
1801  munmap(0x40014000, 4096)          = 0
1801  open("/etc/resolv.conf", O_RDONLY) = 6
1801  fstat(6, {st_mode=S_IFREG|0644, st_size=40, ...}) = 0
1801  read(6, "nameserver 61.8.0.5\nnameserver 6"..., 40) = 40
1801  close(6)                          = 0

*** End of output.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to