Re: iSCSI active/active stale io guard

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

 



Thanks for the feedback, Maged.

On Fri, 04 May 2018 20:09:44 +0200, Maged Mokhtar wrote:

> On 2018-05-02 00:36, David Disseldorp wrote:
...
> > The Ceph (v13.0.2-1974) OSD request expiry functionality is added via a
> > new (likely in the completely wrong place) class="user" fn="expire_req"
> > call:
> > https://github.com/ddiss/ceph/commits/poc_osd_req_expiry
> > 
> > This new class function is then invoked via an op that is prefixed to
> > all kRBD OSD write requests *if* the image is mapped with a
> > write_expiry_msec=X parameter:
> > https://git.samba.org/?p=ddiss/linux.git;a=shortlog;h=refs/heads/poc_krbd_wreq_expiry
...
> For cloned images: in rbd_obj_read_from_parent() you just get the 
> current time now but in rbd_obj_issue_copyup() we use original request 
> time, this is ok since the first is a read op ?

I've only focused on write-type operations for now. I think it'd
actually make sense to also offer a read_expiry_msec parameter, so that
all requests can optionally carry an expiration time.

> Is there any performance impact from calling current_kernel_time64() 
> since it does use locking, can we use __current_kernel_time() or even 
> something less accurate we derive from jiffies since we do not need that 
> much accuracy.

I haven't done any performance tests on the PoC yet, but yes, a low
resolution clock would probably be preferable here.

> just a cosmetic thing, would it be better to have 2 versions: 
> rbd_img_request_create and rbd_img_request_create_ex and have the later 
> take the timespec64 parameter ?

That might be a little cleaner, I'll take a look.

> i would also be interested to look at the patches to target_core_rbd, 
> were these done against the 4.17 kernel or the SUSE SLE 12 SP3 branch ? 

Okay, I'll send them through. I did them against the SLE12SP3 branch.

> Do you initialize the started time just before calling 
> rbd_img_request_create() ?

In LIO I added se_cmd init time tracking to transport_init_se_cmd().

> what i hope to do is initialize this time 
> from the time stamps of received packets, which seems to be 
> straightforward from your current patches.

I like that approach, but am still a little concerned about the
complexity it potentially adds to LIO and the librbd API (adding a
timeout parameter for every request).

> Really nice work, i am really eager to build this.

Thanks :)

Cheers, David
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux