Bug 228873 - openibd is not loaded on Pathscale InfiniBand cards.
Summary: openibd is not loaded on Pathscale InfiniBand cards.
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: openib
Version: 4.5
Hardware: All
OS: Linux
high
medium
Target Milestone: ---
: ---
Assignee: Doug Ledford
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks: 185457
TreeView+ depends on / blocked
 
Reported: 2007-02-15 17:44 UTC by Konrad Rzeszutek
Modified: 2007-11-30 22:07 UTC (History)
6 users (show)

Fixed In Version: openib-1.1-6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-02-15 22:03:38 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
Patch to init script to load with Pathscale InfiniBand cards. (456 bytes, patch)
2007-02-15 17:46 UTC, Konrad Rzeszutek
no flags Details | Diff
Patch to openibd script to work around difference between RHEL4 and RHEL5 action statement in init scripts (2.04 KB, patch)
2007-02-15 20:30 UTC, Doug Ledford
no flags Details | Diff

Comment 1 Konrad Rzeszutek 2007-02-15 17:46:15 UTC
Created attachment 148125 [details]
Patch to init script to load with Pathscale InfiniBand cards.

Patch to openibd that fixes the problem.

Comment 2 Doug Ledford 2007-02-15 18:05:49 UTC
This bug has already been fixed in the packages slated for RHEL4.5.  Test
packages to confirm the fix can be downloaded from
http://people.redhat.com/dledford/Infiniband/openib/1.1/5

Note, this version of the openibd script fixes the problem in a more generic
fashion and removes the need to hardcode lspci values in the init script itself,
instead relying on modinfo tables read from modules to determine what devices
have a driver that supports them.

Comment 3 Konrad Rzeszutek 2007-02-15 18:11:31 UTC
Wow. That was super quick. Thanks!

Comment 4 Konrad Rzeszutek 2007-02-15 19:38:08 UTC
[root@ibm-ridgeback ~]# /etc/init.d/openibd start
Loading OpenIB kernel modules:  execvp: No such file or directory
[FAILED]
[root@ibm-ridgeback ~]#


Comment 5 Konrad Rzeszutek 2007-02-15 19:49:06 UTC
Looking at the scripts, the openibd does this:

start)
                action $"Loading OpenIB kernel modules: " start
and inside action function (in /etc/rc.d/init.d/functions) this fails:

  initlog $INITLOG_ARGS -c "$*" && success $"$STRING" || failure $"$STRING"

The $* translates to start, and initlog tries to execute that and fails.



Comment 6 Doug Ledford 2007-02-15 20:30:27 UTC
Created attachment 148145 [details]
Patch to openibd script to work around difference between RHEL4 and RHEL5 action statement in init scripts

OK, that's a valid issue.  I had already fixed it, but it evidently didn't get
checked into CVS.  I'll make an openib-1.1-6 that corrects the problem.  I'll
also attach a diff from the broken openibd to the fixed openibd so you can test
for yourself that the problem is solved.

Comment 7 Doug Ledford 2007-02-15 21:16:18 UTC
openib-1.1-6 has been built into the build system and is also available on my
people page.

Comment 8 Konrad Rzeszutek 2007-02-15 21:41:44 UTC
Patch fixes the problem.

Comment 9 Doug Ledford 2007-02-15 22:03:38 UTC
Since this isn't attached to an errata anywhere, it won't get transitioned to
closed when the errata ships, so closing it out as CURRENTRELEASE since the fix
has been verified.

Comment 10 Gurhan Ozen 2007-02-15 22:27:09 UTC
Am I missing something here? I did test this with rhel 5.0 (openib-1.1-4) and it
did indeed work. Or was this something particular to rhel 4.5 ?



Comment 11 Doug Ledford 2007-02-15 22:39:54 UTC
It's particular to RHEL4.5.  In specific, the function action() in
/etc/init.d/functions is different between RHEL4.5 and RHEL5 and it requires a
different method of usage.  In RHEL5, action() can be used to call shell
functions embedded in the init script (which is what openibd did), where as in
RHEL4.5, action() requires the first argument to  be an executable file on the
filesystem.  I rewrote the start/stop/restart sections of the openibd script to
not use action() and instead do what action() does on RHEL5.  I did this *long*
ago on one of my test machines, but did the editing on the file actually in
/etc/init.d, and once I got it right, forgot to copy it into my cvs repo and
check it in, hence why it was missing from the build done through the build
system :-(


Note You need to log in before you can comment on or make changes to this bug.