<!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>&nbsp;</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>&nbsp;</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>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Andreas, I've got the impression&nbsp;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)&nbsp;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>&nbsp;</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>&nbsp;</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>