[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#820567: kexec on mipsel partially broken between ckt20 and ckt25



On Mon, Apr 11, 2016 at 01:34:56AM +0100, Ben Hutchings wrote:
> On Sun, 2016-04-10 at 14:32 -0700, Elliott Mitchell wrote:
> > On Sun, Apr 10, 2016 at 07:47:28PM +0100, Ben Hutchings wrote:
> > > That in no way contradicts what I said. :-) ??When I backport the linux
> > > source package from jessie to wheezy I change it to use gcc-4.6.
> > > 
> > > But the linux-source-X.Y packages (which are a different thing to the
> > > linux source package!) don't specify any particular compiler version.
> > > You can choose that with the CC variable; otherwise the default
> > > compiler (specified by the gcc package) will be used.
> > For this particular mipsel device I was unable to kexec the kernel unless
> > it was built with GCC-4.8.
> 
> I see.
> 
> > If the kernel was built with GCC-4.7 or
> > earlier, I got symptoms identical to the above, messages from the old
> > kernel on the console serial port that it was going away and kexec'd
> > kernel never output any messages.????I could believe this is a funky
> > compiler issue.
> 
> Could it be the kernel image is close to a critical size limit? ??The
> kernel typically gets slightly larger with each stable update. ??Does
> gcc 4.8 generate a smaller or larger kernel image than older versions?

You win one and lose one.  I tracked down the configuration option that
managed to switch from "y" to "n" (seems my base config had it as "y",
but other options interfered, now it is "m"), that shrank the kernel by
40KB and the resultant kernel was successfully loaded by the 3.3 kernel.

The kernel built with GCC 4.4 was about 2% larger than the GCC 4.8 build,
while a GCC 4.6 build was less than 1% smaller than the GCC 4.8 build.
Neither of these kernels was able to successfully start when kexec'd by
a 3.16 kernel (which *was* able to start the bigger kernel).


So this solves the problem this bug was about, it was a size issue.  :-(

Alas I'm expecting it to be a while before I can get the proper solution
in place.


-- 
(\___(\___(\______          --=> 8-) EHM <=--          ______/)___/)___/)
 \BS (    |         EHeM+sigmsg@m5p.com  PGP 87145445         |    )   /
  \_CS\   |  _____  -O #include <stddisclaimer.h> O-   _____  |   /  _/
8A19\___\_|_/58D2 7E3D DDF4 7BA6 <-PGP-> 41D1 B375 37D0 8714\_|_/___/5445


Reply to: