> > Another reason a lot of distros do not support it is because a common > > problem we always hit is that users will write out some data, then start > > modifying it again. But the kernel will normally not do do a sync write > > when you do a write. So once the write() returns, the kernel is still > > sending it through the caches, block, scsi, and iscsi layers. If you are > > writing to the data while the it is working its way through the iscsi > > layers, the iscsi layer could have done the digest calculation, then you > > could modify it and now when the target checks it the digest check will > > fail. And so this happens over and over and you get digest errors all > > over the place and the iscsi layers fire their error handling and retry > > and retry, and in the end they just say forget it and do not support > > data digests. > > So information flow seems to be a bit different from what I was expecting. I > thought the "physical write" is when the kernel issues the SCSI command write > to > the HBA (which should be iSCSI here). ISCSI would then build a network packet > from
It does build it, but the page that references the data is unmodified - and is passed along to the TCP layer which then passes it on to the NIC. This is the zero-page copy path which "assembles" the network packet by assembling the components of the network packet (ie, on this page is the TCP header, on this next page is the data) on the fly (instead of copying the data from iSCSI and then assembling them all on one page). Mike, please correct me if I am wrong. > the SCSI command and transfer it, optionally with digests attached. Your original e-mail was asking about two different types of digests. The PDU header and the data. The PDU header I am pretty sure is working - will double-check today thought. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to open-iscsi@googlegroups.com To unsubscribe from this group, send email to open-iscsi+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/open-iscsi -~----------~----~----~----~------~----~------~--~---