1. 23 Nov, 2007 40 commits
    • Linus Torvalds's avatar
      Import 2.1.117pre1 · 2b421ec7
      Linus Torvalds authored
      2b421ec7
    • Linus Torvalds's avatar
      Linux 2.1.116 · ac995a26
      Linus Torvalds authored
      I just released Linux-2.1.116. I've tested it fairly extensively on my SMP
      box, both with little memory and much, and I cannot make it lock up any
      more.
      
      Special thanks to Dean Gaudet who helped me set up a apache configuration
      that finally made me able to repeat the lockup, and made me able to debug
      the thing.
      
      Most of the 2.1.116 patches are "just" alpha and m68k updates, and can be
      ignored by most people. The bugfixes are, roughly:
      
       - fixed serious low-memory situation problem, where a critical resource
         allocation problem could result in nasy behaviour. Notably, doing TCP
         under low memory could result in TCP trying to allocate memory in a
         tight loop and locking out kswapd completely so that the situation
         would never be rectified. In short, the machine hung.
         This problem has been there forever, the only reason it doesn't show up
         under 2.0.x seems to be because under 2.0.x the TCP allocation was
         always for a single page, for which this situation never arises. Under
         2.1.x the slab code forced multi-page allocations.
         If you've seen lockups with 2.1.x, this may be the cause. This was what
         held up 2.1.116 for so long.
       - various minor driver updates. Networking, radio, bttv.
       - NFS over TCP still doesn't work, but at least it fails due to new
         reasons.
      
      Alan, try your squid thing under 2.1.116. I suspect it will hold up now,
      
                      Linus
      ac995a26
    • Linus Torvalds's avatar
      Import 2.1.116pre2 · 45b31a0a
      Linus Torvalds authored
      45b31a0a
    • Linus Torvalds's avatar
      Import 2.1.116pre1 · 7d32756b
      Linus Torvalds authored
      7d32756b
    • Linus Torvalds's avatar
      Linux-2.1.115 - code freeze. · 180eb7b9
      Linus Torvalds authored
      Ok, we've been in a tentative code freeze for a long time, and now it's
      final. I've made a 2.1.115 that I hope is good enough, and I won't be
      accepting anything but bug-fixes until 2.2..
      There are two long-standing patches that I'm still considering:
      
       - devfs
       - dynamic fd's
      
      and I kind of expect that they'll go in (devfs is configurable, so if you
      don't want it you don't need to care, and the dynamic fd's save some
      memory and speed certain things up a bit). The reason they're not in now
      is mainly that I've been trying to get everything else off my plate, and I
      want to ruminate on them in peace for a while.
      Bug-fixes are still (and will always be) accepted,
      
                      Linus
      180eb7b9
    • Linus Torvalds's avatar
      Import 2.1.115pre4 · 29167632
      Linus Torvalds authored
      29167632
    • Linus Torvalds's avatar
      Import 2.1.115pre3 · 9307ef5f
      Linus Torvalds authored
      9307ef5f
    • Linus Torvalds's avatar
      Import 2.1.115pre2 · c60ed932
      Linus Torvalds authored
      c60ed932
    • Linus Torvalds's avatar
      Import 2.1.115pre1 · b5d6c0fe
      Linus Torvalds authored
      b5d6c0fe
    • Linus Torvalds's avatar
      Import 2.1.114 · 429383c2
      Linus Torvalds authored
      429383c2
    • Linus Torvalds's avatar
      Import 2.1.113 · 32cf753f
      Linus Torvalds authored
      32cf753f
    • Linus Torvalds's avatar
      Import 2.1.112 · fbf60bdb
      Linus Torvalds authored
      fbf60bdb
    • Linus Torvalds's avatar
      Import 2.1.112pre2 · e19d7734
      Linus Torvalds authored
      e19d7734
    • Linus Torvalds's avatar
      Import 2.1.112pre1 · 17c19e02
      Linus Torvalds authored
      17c19e02
    • Linus Torvalds's avatar
      Import 2.1.111 · 5662673d
      Linus Torvalds authored
      5662673d
    • Linus Torvalds's avatar
      Import 2.1.111pre1 · ea9ed7eb
      Linus Torvalds authored
      ea9ed7eb
    • Linus Torvalds's avatar
      Import 2.1.110 · b5a22d4d
      Linus Torvalds authored
      b5a22d4d
    • Linus Torvalds's avatar
      What 2.1.110-3 does is to much more aggressively throw out dentries (and · 756b5aab
      Linus Torvalds authored
      thus inodes) under low-memory circumstances.  It may be _too_ aggressive
      right now, but if so that just gives a good mid point to strive for.
      
      I'd really like to hear comments about how this "feels" (and numbers
      too, if you have them).  It's fairly hard for me to judge, as whenever I
      run Linux on small-memory machines it always feels slower than I'm used
      to, regardless of whether Linux does the right thing or not ;)
      
                      Linus
      756b5aab
    • Linus Torvalds's avatar
      Import 2.1.110pre2 · a19c0fb8
      Linus Torvalds authored
      a19c0fb8
    • Linus Torvalds's avatar
      Import 2.1.110pre1 · 42b1d071
      Linus Torvalds authored
      42b1d071
    • Linus Torvalds's avatar
      Linux-2.1.109.. preliminary code freeze. · 281cb806
      Linus Torvalds authored
      Ok, it's out there now in all its glory...
      2.1.109 does the following thing:
      
       - CPU detection in C code (and thus much easier to expand upon,
         especially as it's all thrown away after booting now that it is
         "initfunc()").  This should finally get the Cyrix case right, for
         example. Please test.
       - too meny people convinced me that sendfile() really wants to act like
         writep().
       - sound driver updates from Alan.
       - console updates, so now we have the full old functionality again as far
         as I'm concerned (but I'm sure people will tell me something is still
         missing)
       - task switch and user space return cleanly handles bad segment
         descriptors etc, so people shoul dno longer be able to cause kernel
         messages by misusing the LDT (and I was just informed that you could
         actually completely hang a 2.1.x SMP kernel by doing nasty things -
         this fixes it)
       - wine should work again thanks to Bill Hawes (other LDT fixes)
       - de4x5 driver update
       - token ring driver update
       - ppp driver update
       - coda-fs update
       - "shared writable" bug fixed (thanks to a lot of people for testing and
         working on this - the actual fix was trivial once the problem was
         understood)
      
      In addition, I've spent a large part of my day running with a 12MB
      machine, and low-memory behaviour seems to be reasonable. People who have
      been unhappy with low-memory behaviour should check out 109 and comment on
      it - the heuristics are fairly different, and seem to be better.
      
      As of this release, I won't be looking at the "incoming" directory at the
      linux-patches site any more. I'll only be looking at "urgent" things, on
      the theory that I'm (a) lazy and (b) getting into code freeze.
      
      If you have important patches in "incoming", feel free to move them to
      "urgent". However, I will warn that if I don't consider them to be 2.2
      material, I'll just move them to "discarded".
      
      The same goes for patches in email. I will accept patches, but I've just
      raised the bar for acception.
      
                      Linus
      281cb806
    • Linus Torvalds's avatar
      pre-2.1.109-2.. · e994d3ce
      Linus Torvalds authored
      To get people away from their normally scheduled copyright discussions, I
      made a pre-2.1.109 to try out. I woul dhave made a real 2.1.109, but my
      computer room has been taken over by visiting relatives, and they want to
      go to sleep. Ye Gods!
      
      Get it from ftp.kernel.org, /pub/linux/kernel/testing as usual. It has
       - CPU detection in C code (and thus much easier to expand upon,
         especially as it's all thrown away after booting now that it is
         "initfunc()").  This should finally get the Cyrix case right, for
         example. Please test.
       - too meny people convinced me that sendfile() really wants to act like
         writep().
       - sound driver updates from Alan.
       - console updates, so now we have the full old functionality again as far
         as I'm concerned (but I'm sure people will tell me something is still
         missing)
       - task switch and user space return cleanly handles bad segment
         descriptors etc, so people shoul dno longer be able to cause kernel
         messages by misusing the LDT.
       - wine should work again thanks to Bill Hawes (other LDT fixes)
       - de4x5 driver update
       - token ring driver update
       - ppp driver update
       - coda-fs update
       - "shared writable" bug fixed (thanks to a lot of people for testing and
         working on this - the actual fix was trivial once the problem was
         understood)
      Check it out,
      
                      Linus
      e994d3ce
    • Linus Torvalds's avatar
      Import 2.1.109pre1 · ab92dab4
      Linus Torvalds authored
      ab92dab4
    • Linus Torvalds's avatar
      Linux 2.1.108 · 7eaba1c7
      Linus Torvalds authored
      I just made a pre-2.1.108 and put it on ftp.kernel.org - it fixes a
      problem where my sendfile() forgot to get the kernel lock (blush), so it
      randomly didn't work correctly on SMP.
      
      I've also done some more testing of sendfile(), and the nice thing is that
      when I compared doing a file copy with sendfile compared to a plain "cp",
      the sendfile implementation was about twice as fast (at least my version
      of "cp" will just do read+write pairs over and over again). When I copied
      a 38MB file the "cp" took 1:58 seconds while sendfile took 1:08 seconds
      according to "time" (I have 512MB of RAM, so this was all cached,
      obviously)..
      
      I haven't done any network tests, because I don't think I'd be able to see
      any difference, and it does need the "SO_CONSTIPATED" thing and a way to
      push the end of data for best performance.
      
      Some final words on sendfile():
       - it does report errors correctly. That doesn't mean that you necessarily
         can know _which_ fd produced the error, that you have to find out on
         your own. A file real access can generally result in EIO and EACCES
         (the latter with NFS and other "protection-at-read-time" non-UNIX
         filesystems), while the output write() can result in a number of errors
         as the output fd can be any kind of socket/tty/file. Depending on the
         mode of the output file, the output errors can include EINTR, EAGAIN
         etc, and you can mix sendfile() with select() on the output socket, for
         example.
       - you can give it a length of MAX_ULONG, and it will write as much as it
         can. This is entirely consistent with the notion that it is equivalent
         with write(out, tmpbuf, read(in, tmpbuf, size)) where "tmpbuf" is
         essentially infinite - the read() will read al of the file and return
         the file length in the process. Thus you don't even need to know the
         size of the file beforehand.
         The file copy test was essentially done with a single
              error = sendfile(out, in, ~0);
         and I'm appending my current test-program.
      
      This is going to be in 2.2, btw. The changes are so small and so obviously
      have to work that it would be ridiculous not to have this - the only
      question is whether I'll try to make it a "copyfd()" system call instead,
      falling back on read+write when I can't use the page cache directly. I
      suspect I won't.
      
                              Linus
      7eaba1c7
    • Linus Torvalds's avatar
      Import 2.1.108pre1 · eb4d32c1
      Linus Torvalds authored
      eb4d32c1
    • Linus Torvalds's avatar
      Import 2.1.107 · d4f630d9
      Linus Torvalds authored
      d4f630d9
    • Linus Torvalds's avatar
      Linux 2.1.107pre2 · b599fad6
      Linus Torvalds authored
      Are there people out there that use the loopback device with SMP, and have
      been irritated at it not working lately?
      I gave up on waiting for any real loop device maintainer to step up and
      fix this, so I made a very small patch that I suspect may fix the problem.
      I'm not going to test it myself, and I'm fairly disgusted with how badly
      the loop device is being maintained at all. But if people feel they want
      to test it out, go to
      
              ftp.kernel.org//pub/linux/kernel/testing
      
      and fetch the current pre-107-2 patch.
      It also has some other patches to the loop device that I picked up and
      that looked like the right thing to do (use dentry pointers instead of
      inodes to make mount/umount happy.
      
                      Linus
      b599fad6
    • Linus Torvalds's avatar
      Import 2.1.107pre1 · 8aec0173
      Linus Torvalds authored
      8aec0173
    • Linus Torvalds's avatar
      Import 2.1.106 · e250954a
      Linus Torvalds authored
      e250954a
    • Linus Torvalds's avatar
      Import 2.1.106pre1 · 9a8f8b7c
      Linus Torvalds authored
      9a8f8b7c
    • Linus Torvalds's avatar
      Linux 2.1.105 · 37cd23b4
      Linus Torvalds authored
      Linux-2.1.105 is out there, and is mainly a "synch to other people and fix
      silly problems" release. It has the 104 kmod and compilation problems
      fixed, and updates some pending patches (notably sound and ham radio
      drivers).
      
                      Linus
      37cd23b4
    • Linus Torvalds's avatar
      [tytso] include/asm-i386/posix_types.h · bfe296ce
      Linus Torvalds authored
      This quick fix eliminates a lot of warning messages when
      compiling e2fsprogs under glibc.  This is because the glibc header files
      defines its own version of FD_SET, FD_ZERO, etc., and so if you need to
      #include the kernel include files, you get a lot of duplicate defined
      macro warning messages.  This patch simply #ifdef's out the kernel
      versions of these function if the kernel is not being compiled and the
      glibc header files are in use.
      bfe296ce
    • Linus Torvalds's avatar
      pre-104 · 17559565
      Linus Torvalds authored
      The bulk of the pre-patch is just some speeling error fixes, but there's a
      one-liner that gets rid of the double interrupts with level-triggered
      irq's on the IO-APIC, and that is known to have fixed one persons SCSI
      tape driver (the fact that there were problems with too many interrupts
      implies that something is slightly buggered in the driver, but..)
      
      This should also have a ne2000 driver that doesn't get a NULL pointer
      fault for some people, and the irq changes should hopefully make it work
      on UP systems again even if the kernel is compiled as SMP.
      And there are some MTRR updates.
      
                      Linus
      17559565
    • Linus Torvalds's avatar
      Linux 2.1.103 · 05d033de
      Linus Torvalds authored
      >   I finnaly get the IRQ detection working with this patch,
      >  in linux-2.1.102/arch/i386/kernel/irq.c :
      Ok, does it still work with 2.1.103?
      2.1.103 has this patch, and also changes certain other things wrt interrupts in
      a way that both Edgar and Ingo seem to agree on, and it's been stable on
      certain boxes where plain 2.1.102 wasn't.
      
      2.1.103 also disables the early Cyrix cpuid stuff, because we now seem to
      have confirmation that this is what corrupts DMA IDE transfers (the cyrix
      code steps on magic motherboard IO ports - which Intel probably put there
      specially to mess with Cyrix. But maybe I'm just cynical). So people that
      have had problems with disk corruption and are brave enough to try, this
      could be an interesting experiment.
      [ Thanks to Gerard Roudier and Alan Cox for chasing down the IDE
        corruption issue, btw ]
      
                      Linus
      05d033de
    • Linus Torvalds's avatar
      Import 2.1.102 · a0024c7b
      Linus Torvalds authored
      a0024c7b
    • Linus Torvalds's avatar
      Import 2.1.102pre2 · c2ecd6ec
      Linus Torvalds authored
      c2ecd6ec
    • Linus Torvalds's avatar
      Import 2.1.102pre1 · cf1748ae
      Linus Torvalds authored
      cf1748ae
    • Linus Torvalds's avatar
      Import 2.1.101 · e948921e
      Linus Torvalds authored
      e948921e
    • Linus Torvalds's avatar
      Import 2.1.100 · 8a0d09a2
      Linus Torvalds authored
      8a0d09a2
    • Linus Torvalds's avatar
      Import 2.1.100pre3 · f2e73398
      Linus Torvalds authored
      f2e73398