2018-10-14 07:07:49

by Meelis Roos

[permalink] [raw]
Subject: Relocation (type 4) overflow on alpha for big module

I decided to try btrfs on one of my alphas and got a surprise - btrfs module does not load:

modprobe: ERROR: could not insert 'btrfs': Exec format error

dmesg has

module btrfs: Relocation (type 4) overflow vs btrfs_attach_transaction_barrier

Happens both natively on alpha:
binutils 2.30.0 (Gentoo 2.30 p2) and gcc version 7.3.0 (Gentoo 7.3.0-r3 p1.4)
or in cross-compiling:
binutils (GNU Binutils for Debian) 2.31.1 and gcc version 8.1.0 (Debian 8.1.0-12)

btrfs.ko has size 2939856. Build-in btrfs initializes and tests itself just fine.

This seems to have happened in the distant past:
https://www.redhat.com/archives/axp-list/2005-March/msg00060.html

Do we have a similar binutils problem again with big modules?

--
Meelis Roos <[email protected]>


2018-10-14 17:56:55

by Bob Tracy

[permalink] [raw]
Subject: Re: Relocation (type 4) overflow on alpha for big module

On Sun, Oct 14, 2018 at 10:07:13AM +0300, Meelis Roos wrote:
> I decided to try btrfs on one of my alphas and got a surprise - btrfs module does not load:

Confirmed on a PWS 433au running 4.19.0-rc6 with latest "sid" toolchain.

--Bob

2018-10-14 19:24:19

by Michael Cree

[permalink] [raw]
Subject: Re: Relocation (type 4) overflow on alpha for big module

On Sun, Oct 14, 2018 at 12:33:06PM -0500, Bob Tracy wrote:
> On Sun, Oct 14, 2018 at 10:07:13AM +0300, Meelis Roos wrote:
> > I decided to try btrfs on one of my alphas and got a surprise - btrfs module does not load:
>
> Confirmed on a PWS 433au running 4.19.0-rc6 with latest "sid" toolchain.

Known and long-standing problem in the Alpha kernel module loader.
Requires extra code implmented to support loading such large modules
which no one has done. Workaround is to build the kernel with such
modules (e.g. radeon, btrfs) in-built.

Cheers
Michael.

2018-10-14 23:16:17

by Bob Tracy

[permalink] [raw]
Subject: Re: Relocation (type 4) overflow on alpha for big module

On Mon, Oct 15, 2018 at 07:41:48AM +1300, Michael Cree wrote:
> On Sun, Oct 14, 2018 at 12:33:06PM -0500, Bob Tracy wrote:
> > On Sun, Oct 14, 2018 at 10:07:13AM +0300, Meelis Roos wrote:
> > > I decided to try btrfs on one of my alphas and got a surprise - btrfs module does not load:
> >
> > Confirmed on a PWS 433au running 4.19.0-rc6 with latest "sid" toolchain.
>
> Known and long-standing problem in the Alpha kernel module loader.
> Requires extra code implmented to support loading such large modules
> which no one has done. Workaround is to build the kernel with such
> modules (e.g. radeon, btrfs) in-built.

ACK on the workaround. Never noticed the problem with, per your
example, the radeon driver because I seldom build a driver as a
module for a piece of hardware (or filesystem type) that's present
at boot and won't be removed.

--Bob