[parisc-linux] Module Relocation Problem
Randolph Chung
randolph at tausq.org
Wed Jun 14 02:02:10 MDT 2006
> A number of kernel modules fail to load nowadays on parisc. That
> includes xfs, netfilter, ipv6... Some are known bloated big ones, but
> others are quite surprising. In any case that's clearly a problem we
> want to fix at some point.
>
> I remember Randolph saying that might indeed be a kernel loader
> issue... Randolph, any thought?
ok, several things:
- I looked at fixing this in binutils, which is really the "right" place
to fix this; unfortunately the changes required are very extensive, so I
gave up
- I looked at using -mlong-calls to address this issue. I've added the
missing relocation that was reported in a previous message on this
thread, but there are other problems - with modules compiled with
-mlong-call I am seeing rather bizarre crashes that I have not had time
to debug further. I do not yet know why they are happening, although I
suspect it has to do with bve clobbering r31. I'm not yet sure if this
is a kernel problem or a gcc problem.
- As to "small" modules causing the out of bounds problem - I haven't
really looked at any modules other than ipv6. If there's a particular
one that is "surprising", I can take a look. Usually it's quite obvious
where the out of bounds problem is.
- As an aside, while looking at the module loading problem, I've
convinced myself that the 64-bit module loader is wrong. OTOH, it seems
to work in most cases, so there's clearly something that I don't yet
understand.....
The module loader has a hard coded limit for the number of GOT entries.
We can exceed this rather easily in some cases when we are using long calls.
randolph
--
Randolph Chung
Debian GNU/Linux Developer, hppa/ia64 ports
http://www.tausq.org/
More information about the parisc-linux
mailing list