<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.21297" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY
style="WORD-WRAP: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space"
bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello!</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Alex, the HLD already expects all data writes to be
synchronous on the OSS (filter_do_bio() does wait in cfs_wait_event() for I/O
completion on all buffers so that we can get errors synchronously; even if a
drive signals I/O completion prior to physical writing data, I think, it makes
the whole of verification in advance). However, since there is a common
misconception that async journal commit has anything to do with async data
commit, I'll try to stress it even more.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Nathan, I was thinking that 4096-byte sectors are
really 4104-bytes sectors with T10-capable disks (as in <A
href="http://www.mjmwired.net/kernel/Documentation/block/data-integrity.txt">http://www.mjmwired.net/kernel/Documentation/block/data-integrity.txt</A>).
Are there really any 4160-byte sector disks?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Andreas, I've got the impression that the
mkwrite() patch can only help with mmap races if the client cache protection is
disabled. The idea of the patch seems to make mmaped pages write-protected while
a write request (including checksum calculation) is serviced, other threads
trying to write to the same page will cause a page fault and stick in Lustre
waiting for I/O completion. However, if any protection information is attached
to a page, we need to update it with every page write access. This is possible
through the common VFS write path, but hardly through a PROT_WRITE
mapping.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>P.S. Sorry for merging multiple replies in a single
email, this is only to prevent spamming.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thank you,</FONT></DIV>
<DIV><FONT face=Arial size=2>Andrew</FONT></DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=alexey_lyashkov@xyratex.com
href="mailto:alexey_lyashkov@xyratex.com">Alexey Lyashkov</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A title=johann@whamcloud.com
href="mailto:johann@whamcloud.com">Johann Lombardi</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=carrier@cray.com
href="mailto:carrier@cray.com">John Carrier</A> ; <A
title=twg@lists.opensfs.org
href="mailto:twg@lists.opensfs.org">twg@lists.opensfs.org</A> ; <A
title=discuss@lists.opensfs.org
href="mailto:discuss@lists.opensfs.org">discuss@lists.opensfs.org</A> ; <A
title=Andrew_Perepechko@xyratex.com
href="mailto:Andrew_Perepechko@xyratex.com">AndrewPerepechko</A> </DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Sunday, April 22, 2012 6:36
AM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [Discuss] [Twg] T10
End-to-End Data Integrity HLD</DIV>
<DIV><BR></DIV>John,
<DIV><BR></DIV>
<DIV>Why not? HCA provide a T10 checksumming when obdfilter (osd) submit a IO
request - so it's before a call bio_done() function and before send a reply to
client.</DIV>
<DIV>so we may don't want a commit as HCA verify a checksum and it's
correct.</DIV>
<DIV><BR></DIV>
<DIV><BR></DIV>
<DIV>PS. Andrew - please add that clarification to the document.<BR>
<DIV>
<DIV>On Apr 21, 2012, at 03:22, Johann Lombardi wrote:</DIV><BR
class=Apple-interchange-newline>
<BLOCKQUOTE type="cite">Hi Alexey,<BR><BR>On Saturday, April 21, 2012,
Alexey Lyashkov wrote:
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">you
are wrong. It's Andrew HLD. possible it isn't clear - but per internal
discussion, server isn't validate checksum before HCA. Using a HCA to
checksum validation and provide end to end integrity checks - main idea of
using T10 in lustre.<BR>per my previous comment server validation isn't
need - because client will resend IO request in both cases - checksum
error or real IO error.</BLOCKQUOTE>
<DIV><BR></DIV>
<DIV>This means that you can't use asynchronous journal commit in
conjunction with T10, right?</DIV><BR>
<DIV>Johann<SPAN></SPAN></DIV></BLOCKQUOTE></DIV><BR></DIV></BLOCKQUOTE></BODY></HTML>