Re: active swapping using rumpdisk

Samuel Thibault <[email protected]>
Newsgroups gmane.linux.debian.ports.hurd
Organization I am not organized
Message-ID <aKEGKyLQX4BiHIkg@begin>
HEllo,

Michael Kelly, le sam. 16 août 2025 20:29:57 +0100, a ecrit:
> The reason that page lists are not used is that the rump disk port is not
> configured as an IKOT_DEVICE. The equivalent non-rumpdisk device port is set
> using:
> 
> (gnumach/linux/dev/glue/block.c)
> 
>   ipc_kobject_set (bd->port, (ipc_kobject_t) &bd->device, IKOT_DEVICE);
> 
> I cannot see a simple method of achieving the same in rumpdisk

We can add one :)

I'm however thinking that we should probably not conflate IKOT_DEVICE
with a user-level one, because IKOT_DEVICE may be used for more than
what we think, see e.g. dev_port_lookup, ipc_kobject_notify. But we can
add another IKOT_USER_DEVICE, and add it to ipc_kobject_vm_page_list,
and add a mach call (restricted to privileged tasks) to set this type.

> but to test a
> similar effect I 'hacked' ipc_kmsg_copyin_body() to use page lists for many
> of the messages intended for the rumpdisk task to pseudo-test the
> alteration:
> 
>         if (kmsg->ikm_header.msgh_id >= 2800 &&
>             kmsg->ikm_header.msgh_id < 2900)
>           use_page_lists = TRUE;
> 
> This results in many successful iterations of my stress test case whereas
> normally it locks very swiftly.

Great :)

> Is there a mechanism that can be used outside of the kernel to configure the
> rumpdisk ports as IKOT_DEVICE ports so that it can be tested properly?

Not that I know of.

Samuel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.