Re: ip_contrack refuses to load if built UP as a module on IA64

dann frazier
2006-01-22T19:31:20Z

On Tue, 2006-01-10 at 14:21 -0700, dann frazier wrote:
> On Mon, 2005-12-19 at 13:07 -0800, Luck, Tony wrote:
> > On Thu, Sep 22, 2005 at 04:04:59PM -0600, dann frazier wrote:
> > > On Thu, 2005-09-01 at 14:59 +1000, Peter Chubb wrote:
> > > >
> > > > This patch makes UP and SMP do the same thing as far as module per-cpu
> > > > data go.
> > > >
> > > > Unfortunately it affects core code.
> > >
> > > It causes 2.6.13/x86 to fail to link:
> > > kernel/built-in.o: In function `load_module':
> > > : undefined reference to `percpu_modcopy'
> > > make: *** [.tmp_vmlinux1] Error 1
> > >
> > > fyi, this is a problem we're seeing in the Debian UP packages:
> > > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug25070
> >
> > Another possible solution is to make ia64 more like other
> > architectures and make per-cpu variables just turn into
> > ordinary variables on UP. There are some pros and cons to
> > this:
> >
> > +) Being more like other architectures makes it less likely that
> > we'll be burned by changes in generic code/tools that depend
> > on implementation details
> >
> > -) We probably get worse code to access per-cpu variables from
> > C-compiled code, and definitely get worse code in a couple of
> > critical paths in assembler (where an "addl" becomes a "movl")
> >
> > Here's the patch ... lightly tested (just booted and checked that
> > I could load the ip_conntrack module).
>
> Thanks Tony; sorry for taking so long to test this. I required an
> additional change to discontig.c to get this to build w/ the Debian
> config. With this additional patch, a UP kernel boots fine on my
> rx2600.

fyi, just noticed that the efivars module still doesn't load.