RHEL 3?

Jason Titus jtitus@postini.com
Mon, 9 Feb 2004 22:50:33 -0800


Doesn't look good against linux-2.4.21-4.EL....

[root src]# patch -p0 < /root/epoll-lt-2.4.21-0.18.diff
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -Nru linux-2.4.21.vanilla/arch/i386/kernel/entry.S =
linux-2.4.21.epoll/arch/i386/kernel/entry.S
|--- linux-2.4.21.vanilla/arch/i386/kernel/entry.S      2003-06-13 =
07:51:29.000000000 -0700
|+++ linux-2.4.21.epoll/arch/i386/kernel/entry.S        2003-08-24 =
12:37:17.000000000 -0700
--------------------------
File to patch:=20
[root@rcdev1mx5 src]# mv linux-2.4.21-4.EL-bkp linux-2.4.21.epoll
[root@rcdev1mx5 src]# patch -p0 < /root/epoll-lt-2.4.21-0.18.diff
patching file linux-2.4.21.epoll/arch/i386/kernel/entry.S
Hunk #1 FAILED at 658.
1 out of 1 hunk FAILED -- saving rejects to file =
linux-2.4.21.epoll/arch/i386/kernel/entry.S.rej
patching file linux-2.4.21.epoll/arch/ia64/ia32/ia32_entry.S
Hunk #1 FAILED at 401.
1 out of 1 hunk FAILED -- saving rejects to file =
linux-2.4.21.epoll/arch/ia64/ia32/ia32_entry.S.rej
patching file linux-2.4.21.epoll/arch/ia64/ia32/sys_ia32.c
Hunk #2 succeeded at 4053 (offset 106 lines).
patching file linux-2.4.21.epoll/arch/ia64/kernel/ivt.S
Hunk #1 FAILED at 847.
1 out of 1 hunk FAILED -- saving rejects to file =
linux-2.4.21.epoll/arch/ia64/kernel/ivt.S.rej
patching file linux-2.4.21.epoll/arch/sparc64/solaris/timod.c
Hunk #1 succeeded at 665 (offset 14 lines).
patching file linux-2.4.21.epoll/fs/eventpoll.c
patching file linux-2.4.21.epoll/fs/file_table.c
Hunk #4 FAILED at 107.
1 out of 4 hunks FAILED -- saving rejects to file =
linux-2.4.21.epoll/fs/file_table.c.rej
patching file linux-2.4.21.epoll/fs/Makefile
Hunk #1 FAILED at 14.
1 out of 1 hunk FAILED -- saving rejects to file =
linux-2.4.21.epoll/fs/Makefile.rej
patching file linux-2.4.21.epoll/fs/ncpfs/sock.c
patching file linux-2.4.21.epoll/fs/select.c
Hunk #1 FAILED at 19.
Hunk #2 FAILED at 53.
Hunk #3 succeeded at 229 with fuzz 1 (offset 148 lines).
Hunk #4 succeeded at 118 (offset 5 lines).
Hunk #5 succeeded at 322 (offset 148 lines).
Hunk #6 succeeded at 193 (offset 5 lines).
Hunk #7 succeeded at 543 (offset 148 lines).
Hunk #8 succeeded at 430 (offset 5 lines).
2 out of 8 hunks FAILED -- saving rejects to file =
linux-2.4.21.epoll/fs/select.c.rej
patching file linux-2.4.21.epoll/fs/smbfs/sock.c
patching file linux-2.4.21.epoll/include/asm-i386/unistd.h
Hunk #1 FAILED at 257.
1 out of 1 hunk FAILED -- saving rejects to file =
linux-2.4.21.epoll/include/asm-i386/unistd.h.rej
patching file linux-2.4.21.epoll/include/asm-ppc/unistd.h
Hunk #1 FAILED at 238.
1 out of 1 hunk FAILED -- saving rejects to file =
linux-2.4.21.epoll/include/asm-ppc/unistd.h.rej
patching file linux-2.4.21.epoll/include/linux/eventpoll.h
patching file linux-2.4.21.epoll/include/linux/fs.h
Hunk #1 succeeded at 602 (offset 59 lines).
The next patch would create the file =
linux-2.4.21.epoll/include/linux/hash.h,
which already exists!  Assume -R? [n]=20
Apply anyway? [n]=20
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file =
linux-2.4.21.epoll/include/linux/hash.h.rej
patching file linux-2.4.21.epoll/include/linux/kernel.h
Hunk #1 succeeded at 209 (offset 35 lines).
patching file linux-2.4.21.epoll/include/linux/poll.h
Hunk #1 FAILED at 10.
1 out of 1 hunk FAILED -- saving rejects to file =
linux-2.4.21.epoll/include/linux/poll.h.rej
patching file linux-2.4.21.epoll/include/linux/sched.h
Hunk #1 succeeded at 157 with fuzz 2 (offset 22 lines).
patching file linux-2.4.21.epoll/include/linux/wait.h
Hunk #2 FAILED at 35.
Hunk #3 succeeded at 149 with fuzz 2 (offset 8 lines).
Hunk #4 FAILED at 186.
Hunk #5 succeeded at 217 (offset 16 lines).
2 out of 5 hunks FAILED -- saving rejects to file =
linux-2.4.21.epoll/include/linux/wait.h.rej
patching file linux-2.4.21.epoll/kernel/ksyms.c
Hunk #1 succeeded at 301 (offset 42 lines).
patching file linux-2.4.21.epoll/kernel/sched.c
Hunk #1 FAILED at 714.
1 out of 1 hunk FAILED -- saving rejects to file =
linux-2.4.21.epoll/kernel/sched.c.rej

----

Seems pretty hard to work out by hand.  Bummer that RedHat hasn't =
decided to include epoll in their distro although the header and man =
files are there in a few places:

[root src]# locate epoll
/usr/share/man/man2/epoll_create.2.gz
/usr/share/man/man2/epoll_ctl.2.gz
/usr/share/man/man2/epoll_wait.2.gz
/usr/share/man/man4/epoll.4.gz
/usr/include/sys/epoll.h
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/sys/epoll.ph

Jason

-----Original Message-----
From: Brad Fitzpatrick [mailto:brad@danga.com]
Sent: Mon 2/9/2004 10:23 PM
To: Jason Titus
Cc: memcached@lists.danga.com
Subject: Re: RHEL 3?
=20
> Anyone running memcached on RedHat Enterprise Linux 3?  I'm having a
> hard time finding getting epoll working on this distro.  Seems like =
the
> glibc supports it, but the kernel doesn't, and I can't find a patch =
that
> will go against 2.4.21-EL cleanly (or even 2.4.21).  I suppose we =
could
> go for the vanilla kernel, but that would mean a bunch of time to =
harden
> it.

Weird... I'd have thought RHEL would do epoll by default.  I guess very
little code uses it yet, so it's not considered a big deal.

Here's the patch for 2.4.21 vanilla:

http://www.xmailserver.org/linux-patches/epoll-lt-2.4.21-0.18.diff

What parts don't merge cleanly?  Usually resolving it by hand isn't so
hard.

- Brad