bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: rumpdisk status


From: Samuel Thibault
Subject: Re: rumpdisk status
Date: Mon, 9 Nov 2020 20:06:28 +0100
User-agent: NeoMutt/20170609 (1.8.3)

Damien Zammit, le lun. 09 nov. 2020 19:43:05 +1100, a ecrit:
> On 9/11/20 4:50 am, Samuel Thibault wrote:
> > But you can as well replace these two calls with a single tall to
> > rump_sys_pread() that avoids such issue (ditto for write).
> 
> http://git.zammit.org/hurd-sv.git/log/
> 
> Even with the new pread/pwrite calls, it still seems to mix up the 
> reads/writes
> between the ext2fs and tune2fs clients.

ergl.

> Using branch above but if I comment out the following line :
> 
> diff --git a/rumpdisk/block-rump.c b/rumpdisk/block-rump.c
> index befe0dbb..be6e38d9 100644
> --- a/rumpdisk/block-rump.c
> +++ b/rumpdisk/block-rump.c
> @@ -205,8 +205,6 @@ device_open (mach_port_t reply_port, mach_msg_type_name_t 
> reply_port_type,
>    mach_print(dev_name);
>    mach_print("\n");
>  
> -  /* Find previous device or open if new */
> -  bd = search_bd (dev_name);
>    if (!bd)
>      {
>        err = machdev_create_device_port (sizeof (*bd), &bd);
> 
> so it always opens new regardless of device, dir_lookup("dev/wd0s3") returns 
> no such device. 

Perhaps add prints in the rump code to determine what really returns
that error and why. Possibly it's really a constraint of wd0d, perhaps
it can only be opened once at a time.

I'd say track the offset within the pread calls, to make sure that it is
not getting lost along the path.

> Do we need multithreaded device_read / device_write as well as pread/pwrite?

There shouldn't be any requirement for multithread. At best it would
bring more problems that fix any :)
In the long run for good performance we'd probably want multithread
+ using aio_read/write, but pread/pwrite should be working fine, and
proceeding further would only be asking for more troubles, so better
first fix things with pread/pwrite.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]