IRC channel logs
2025-06-11.log
back to list of logs
<damo22>youpi: i upgraded to your 0~20250111-2 version of librump* and i still get the zero filled packets, we still have a problem in rump i guess <damo22>but it receives packets, instead of not receiving anything <youpi>that's expected: as I mentioned, the fallback path does support offset already <damo22>no, without latest version, i get no packets received <youpi>? I thought you were already receiving zeros <damo22>i patched my own rumpkernel to get any packets <damo22>something similar to your patch for vm_pages_phys <youpi>that's very surprising, the fallback really does support offset <damo22>it was printing after the fallback failed <damo22>printf("Cannot find a physical address for vaddr %p, returning 0\n", virt); <youpi>that doesn't change anything it what I said :) <youpi>that's very surprising, the fallback really does support offset <youpi>I'm not claiming it does work <youpi>I'm claiming it does support it <youpi>but I'm really surprised because that *is* already getting exercised in rumpdisk <youpi>I got non-aligned requests when I was trying the other day <damo22>is there a chance the vaddr being passed to the hypercall was not allocated with vm_allocate_contiguous() in rump? <damo22>so the assumption of contiguous memory could be false <youpi>It would really not make sense for the caller to call for the physical memory if it's not contiguous <damo22>i mean, rump doesnt know about mach's paging <youpi>but it does have paging for itself <youpi>when the bsd code is used alone in a kernel <youpi>so drivers have to behave anyway <damo22>but dont we have an extra complexity because of mach's paging as well? <youpi>again, bsd does have paging as well <youpi>so bsd drivers have to behave <youpi>paging being done by mach doesn't change anything there <damo22>there is a separate call for bus_dmamap_load_mbuf for mbufs apparently that are used for packet buffers? <youpi>possibly the dma buf api is not completely properly plugged <damo22>thats probably why it exhibits different behavior to the disk driver? <damo22>do we need to #define POOL_VTOPHYS <damo22>it adds in some more logic for pooling virtual -> physical addresses in the mbuf call <youpi>I guess that would mostly add complexity to the problem <youpi>("pool" usually refers to optimization, not correctness) <youpi>again, bsd does have the question as well <youpi>having an option that makes the kernel work at all wouldn't make sense <damo22>rump/librump/rumpkern/arch/x86/rump_x86_pmap.c has <damo22>and POOL_VTOPHYS(x) is usually defined as vtophys(x) <azeem>The postgres test suite keeps hanging my Hurd VM (probably because it hammers it) - I guess I'd need to attach a serial console to get some crash output somewhere? <youpi>damo22: that looks bogus indeed, it should use rumpcomp_pci_virt_to_mach (or actually put the rumpcomp_pci_virt_to_mach implementation into vtophys, and make callers of rumpcomp_pci_virt_to_mach use that instead) <azeem>I can report that if I tweak the Postgres buildfarm client to not run the regression testsuite (which runs fine with submitted patches if I run it manually), the other stages mostly run fine as well except for two other occasions which are likely timer-resolution issues as well <azeem>I need to figure out why the VM hangs/dies during the make check phase <azeem>I've ugpraded to current unstable, but the Postgres timer-resolution tests still fail - is there something I need to configure in order to use those higher-resolution timers? <azert>azeem: maybe you need to enable APIC or ACPI or both?