Re: 2.6.17-mm6

From: Keith Mannthey
Date: Wed Jul 05 2006 - 19:27:03 EST


On 7/5/06, Andrew Morton <akpm@xxxxxxxx> wrote:
"Keith Mannthey" <kmannth@xxxxxxxxx> wrote:
>
> On 7/3/06, Andrew Morton <akpm@xxxxxxxx> wrote:
> >
> > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17/2.6.17-mm6/
> >
> >
>
> Moving from -mm4 to -mm6 I ran into this while trying to boot....
> <snip>
> Could not allocate 16 bytes percpu data
> Could not allocate 16 bytes percpu data
> sd_mod: Unknown symbol scsi_print_sense_hdr
> sd_mod: Unknown symbol scsi_mode_sense
> sd_mod: Unknown symbol scsi_device_get
> sd_mod: Unknown symbol scsi_get_sense_info_fld
> <snip>
>
> sd_mod (and later aacraid) are built into my initrd and loaded during boot.
>
> I doubled PERCPU_ENOUGH_ROOM to 65536 and was able to boot. I am not
> sure what is eating all the percpu room on the system. I was using
> this config with -mm4 just fine.
>
> I attached the dmesg and .config
>

Looks like we simply ran out. Why?...

patches/genirq-x86_64-irq-make-vector_irq-per-cpu.patch:+DEFINE_PER_CPU(vector_irq_t, vector_irq) = {
patches/mm-implement-swap-prefetching.patch:+static DEFINE_PER_CPU(struct pagevec, lru_add_tail_pvecs) = { 0, };
patches/origin.patch:+static DEFINE_PER_CPU(u64 *, tce_page) = NULL;
patches/origin.patch:+DEFINE_PER_CPU(struct sys_device, device_mce);
patches/origin.patch:+static DEFINE_PER_CPU(struct threshold_bank *, threshold_banks[NR_BANKS]);
patches/origin.patch:+static DEFINE_PER_CPU(struct rq, runqueues);
patches/origin.patch:+DEFINE_PER_CPU(struct vm_event_state, vm_event_states) = {{0}};
patches/per-task-delay-accounting-taskstats-interface.patch:+static DEFINE_PER_CPU(__u32, taskstats_seqnum) = { 0 };
patches/readahead-state-based-method-aging-accounting.patch:+DEFINE_PER_CPU(unsigned long, readahead_aging);
patches/x86_64-mm-add-performance-counter-reservation-framework-for-up-kernels.patch:+static DEFINE_PER_CPU(unsigned long, perfctr_nmi_owner);
patches/x86_64-mm-add-performance-counter-reservation-framework-for-up-kernels.patch:+static DEFINE_PER_CPU(unsigned long, evntsel_nmi_owner[3]);
patches/x86_64-mm-add-performance-counter-reservation-framework-for-up-kernels.patch:+static DEFINE_PER_CPU(unsigned, perfctr_nmi_owner);
patches/x86_64-mm-add-performance-counter-reservation-framework-for-up-kernels.patch:+static DEFINE_PER_CPU(unsigned, evntsel_nmi_owner[2]);
patches/x86_64-mm-add-smp-support-on-i386-to-reservation-framework.patch:+static DEFINE_PER_CPU(struct nmi_watchdog_ctlblk, nmi_watchdog_ctlblk);
patches/x86_64-mm-add-smp-support-on-x86_64-to-reservation-framework.patch:+static DEFINE_PER_CPU(struct nmi_watchdog_ctlblk, nmi_watchdog_ctlblk);

Per-cpuifying the 2.5 kbyte runqueue struct will have hurt.

[does readelf --section-headers drivers/scsi/sd_mod.ko, wonders why
.data.percpu isn't there]

hmm. There is no message from the readelf command but there it dosen't
report any .data.percpu area. The only sections for data are just .data and
.rela.data

Are you able to add this, see if we can work out where it all went?

I am still booting with the larger percpu size but I see

percpu_modalloc: allocating 16 bytes for module scsi_mod (vmlinux:41600)
percpu_modalloc: allocating 8 bytes for module ipv6 (vmlinux:41600)

from the log. Something built in is eating it.

I am turing off the readhead to see if that helps.

Thanks,
Keith
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/