Hello,

Michael Kelly, le ven. 06 nov. 2026 20:31:35 +0000, a ecrit:
> 1) There is a problem with my desktop machine with allocating memory for the
> (large) vm_page array for the HIGHMEM memory. I've worked around it by
> reducing he machine memory from 16G to 8G. The problem is that the vm_page
> array is too large to fit into a contiguous space within the DIRECTMAP
> memory available.

Is it physical room that is missing, or virtual room?
(I'm surprised that 8G memory would pose that much physical room issue,
struct vm_page is "just" a hundred bytes, so for 8G it's just 200MB)

> Could that vm_page array be allocated from HIGHMEM and
> mapped into the kernel outside of the normal kernel VM space?

If the missing room is virtual, the physical allocation change won't
matter.

If the missing room is physical, we could probably make
vm_page_bootalloc take highmem pages, since pmap_steal_memory maps the
pages anyway...

> Is it true that cnputc is only used by gnumach boot (until the Hurd
> console starts) and the gnumach debugger?

It's also used by gnumach messages after the console starts, but
otherwise that's about it, yes.

> 4) There were some performance issues with the boot output scrolling on
> actual hardware. I've not looked at this yet but perhaps write combining
> might help.

Yes, you want write combining for visual output, where tears don't
really matter much but performance does.

Samuel

Reply via email to