IRC channel logs


back to list of logs

***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>in device_read
<damo22>youpi: it looks like your changes are making rump behave better
<youpi>good :)
<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
<youpi>usually it's 512
<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
<damo22>but what about writing?
<youpi>that's not supposed to happen
<youpi>in the xen block device I return D_INVALID_SIZE in that case
<damo22>ah ok
<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>i think i'll remove it for now
<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