Project

General

Profile

Feature #4236

krbd: properly handle flush commands

Added by Alex Elder over 8 years ago. Updated about 8 years ago.

Status:
Duplicate
Priority:
Normal
Assignee:
Target version:
-
% Done:

0%

Source:
Development
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

REQ_FLUSH and REQ_FUA are intended to implement drive
cache flushes and barrier semantics. I don't know
precisely how those need to be interpreted by the
kernel rbd implementation, but we should explicitly
handle them.

Right now, blkdev_issue_flush() can generate a zero-length
command whose sole purpose is to insert such a barrier
to a device. The kernel rbd client ignores zero-length
commands, and this is possibly (probably?) not the right
thing to do.

History

#1 Updated by Alex Elder over 8 years ago

Note that http://tracker.ceph.com/issues/4237 describes
making the new request code ignore all zero-length commands.

While looking at this, consider whether there are other
zero-length commands we need to do something about, and
either document why they're ignored or create new issues
to suggest they get resolved.

#2 Updated by Alex Elder about 8 years ago

  • Status changed from New to Duplicate

Marking this duplicate of: http://tracker.ceph.com/issues/3889

I looked into the zero-length request stuff more generally
there, and explained exactly what needed to be done for
FUA and FLUSH.

Other request flags/types of interest:
- WRITE_SAME (supply one page and write data from
that page repeatedly over a specified range)
--> This might be interested but is only used
by code that zeroes disks, and isn't worth
the effort right now to implement for rbd.
- DISCARD
See http://tracker.ceph.com/issues/190

I didn't see anything else that seemed like we
should consider implementing it.

Also available in: Atom PDF