***Server sets mode: +nt
<damo22>i think i found a bug in libmachdevrump <damo22>recnum_t bn is in bytes or numbers of sectors? <damo22>youpi: it looks like your changes are making rump behave better <damo22>as in, i can restart the dummy driver any number of times and it dumps first sector <youpi>damo22: bn is in number of sectors <youpi>(a "record" is a sector in mach terms) <damo22>so i set block_size = 512 hardcoded then? <damo22>i think its having trouble reading a non-power of 2 number of bytes from rump_sys_read() but i cant be sure because i dont have gdb in the initrd <damo22>do i just over read and then return short number of bytes? <youpi>the record size is whatever you report in device_get_status for DEV_GET_SIZE, DEV_GET_SIZE_RECORD_SIZE <damo22>libmachdev uses page size as special boundary for block devices but i dont know why <youpi>I guess that's just to make memory management easier <youpi>to return a non-multiple-of-512, you can read more and copy only what is requested <youpi>that's not supposed to happen <youpi>in the xen block device I return D_INVALID_SIZE in that case <youpi>even for reading, possibly you can return that if it's not multiple <youpi>normally libstoreio will only request multiples of sectors <damo22>i think there is a race condition <damo22>i never see "device_open ALL GOOD" <damo22>ive got a simple refcounter that counts how many times you open rumpdisk <damo22>device_init calls rump_init, and device_open calls rump_sys_open, are they running in the same process? <youpi>damo22: only one translator lives on a given node, so all RPCs served by the translator happen in the same process <youpi>to made sure, print getpid() ***Emulatorman_ is now known as Emulatorman
***mihi_ is now known as mihi