Re: Oopses and invalid addresses under Hatari

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

 



Hi Finn,

Am 12.04.2019 um 21:39 schrieb Finn Thain:
On Fri, 12 Apr 2019, Michael Schmitz wrote:


=> I think the problem is that 'I' kthreads have NULL "current_pwq".

Confirmed by the patch you attached so your analysis seems right.


And offset_of(struct poll_workqueue, wq) == 0x00000004.


Ones with workqueues just have "current_func" set, others don't.

Why that would affect / fault only on 030?

The 040/060 bus error trap may not force a bus error bypassing
do_page_fault() in the same way the 030 handler does. I haven't yet
looked at the 040/060 handler. Did I mention I really don't do memory
management stuff?


Well, that makes two of us.

I know. Without looking at the 040 and 060 processor model in detail, I'm left to guessing what the MMU error bits mean (the descriptopn of the 060 error bits is better than the 040 bits). But it does indeed appear that both 040 and 060 fault handlers call do_page_faults on pages with missing or invalid MMU descriptors, so on these processors suppression of page faults by __probe_kernel_read() work as designed.


The real question is - why are these fields NULL in the first place? And
are they NULL only on 030?


Could be another question for elgar?

Yes, but I'd have to instrument print_worker_info() or the 060 fault handler there. Need to talk to Adrian about that first. Might be best to try that out on an emulator.

Cheers,

	Michael



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux