RE: PROBLEM: 4.15.0-rc3 APIC causes lockups on Core 2 Duo laptop
From: Dexuan Cui
Date: Fri Dec 22 2017 - 20:35:55 EST
> From: Alexandru Chirvasitu [mailto:achirvasub@xxxxxxxxx]
> Sent: Friday, December 22, 2017 14:29
>
> The output of that precise command run just now on a freshly-compiled
> copy of that commit is attached.
>
> On Fri, Dec 22, 2017 at 09:31:28PM +0000, Dexuan Cui wrote:
> > > From: Alexandru Chirvasitu [mailto:achirvasub@xxxxxxxxx]
> > > Sent: Friday, December 22, 2017 06:21
> > >
> > > In the absence of logs, the best I can do at the moment is attach a
> > > picture of the screen I am presented with on the apic=debug boot
> > > attempt.
> > > Alex
> >
> > The panic happens in irq_matrix_assign_system+0x4e/0xd0 in your picture.
> > IMO we should find which line of code causes the panic. I suppose
> > "objdump -D kernel/irq/matrix.o" can help to do that.
> >
> > Thanks,
> > -- Dexuan
The BUG_ON panic happens at line 147:
BUG_ON(!test_and_clear_bit(bit, cm->alloc_map));
I'm sure Thomas and Dou know it better than me.
137 void irq_matrix_assign_system(struct irq_matrix *m, unsigned int bit,
138 bool replace)
139 {
140 struct cpumap *cm = this_cpu_ptr(m->maps);
141
142 BUG_ON(bit > m->matrix_bits);
143 BUG_ON(m->online_maps > 1 || (m->online_maps && !replace));
144
145 set_bit(bit, m->system_map);
146 if (replace) {
147 BUG_ON(!test_and_clear_bit(bit, cm->alloc_map));
148 cm->allocated--;
149 m->total_allocated--;
150 }
151 if (bit >= m->alloc_start && bit < m->alloc_end)
152 m->systembits_inalloc++;
153
154 trace_irq_matrix_assign_system(bit, m);
155 }
-- Dexuan