<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi all,</div><div dir="ltr"><br><div>I give up WinTarget and use FreeNAS as iscsi target , the ipxe can succcessfully boot into windows with no errors, FreeNAS target no crash. </div><div><font color="#000000"><br></font></div><div><font color="#000000">And I noticed the log below when ipxe login to  wintarget ( and FreeNAS):</font></div><div><font color="#000000"><br></font></div><div><div><6>ipxe: iSCSI 0xe9a62c8 initiator iqn.2010-04.org.ipxe:2dfe4d56-efb6-00a3-efcf-7a4242c83c9f</div><div><6>ipxe: iSCSI 0xe9a62c8 target 10.10.10.252 iqn.2019.com.test:gpt</div><div><6>ipxe: iSCSI 0xe9a62c8 entering security negotiation</div><div><6>ipxe: SCSI 0xe9a71e8 created for LUN 0000-0000-0000-0000</div><div><6>ipxe: iSCSI 0xe9a62c8 handling AuthMethod=None</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring TargetAlias=gpt</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring TargetPortalGroupTag=1</div><div><6>ipxe: iSCSI 0xe9a62c8 entering operational negotiation</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring HeaderDigest=None</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring DataDigest=None</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring MaxConnections=1</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring InitialR2T=Yes</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring ImmediateData=No</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring MaxRecvDataSegmentLength=131072</div><div><b><6>ipxe: iSCSI 0xe9a62c8 ignoring MaxBurstLength=262144          <<==</b></div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring FirstBurstLength=65536</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring DefaultTime2Wait=0</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring DefaultTime2Retain=0</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring MaxOutstandingR2T=1</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring DataPDUInOrder=Yes</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring DataSequenceInOrder=Yes</div><div><6>ipxe: iSCSI 0xe9a62c8 ignoring ErrorRecoveryLevel=0</div><div><6>ipxe: iSCSI 0xe9a62c8 entering full feature phase</div></div><div><font color="#000000"><br></font></div><div>I searched on google,seems  the MaxBurstLength has a effect is limits the max read size in one scsi cmd, the target say " I only accept read size max to 262144 bytes in one scsi read cmd",  but IPXE ignoring this . </div><div><br></div><div>When a large size read IO occurs  (large than MaxBurstLength) , the ipxe send large size read request to target , the FreeNAS can handle it correctly, but wintarget can't and crashed. There must be a bug in WinTarget.</div><div><br></div><div>But  if IPXE can make a 

workaround  about this, it would be great. (Don't ignoring MaxBurstLength and other params, and split large size IO to multi small size IO)</div><div><br></div><div>I'm not familiar with IPXE and ISCSI, or I will be glad to do the workaround.</div><div><br></div><div>And before the workaround done , maybe we should add a remarks to ipxe documents page (be careful to use wintarget with uefi iscsi boot windows, use linuxe-based target instead).</div><div><br></div><div>My english is not very well, if anything I wrote is hard to understand, please let me know. Thanks all.</div></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><<a href="mailto:ipxe-devel-request@lists.ipxe.org">ipxe-devel-request@lists.ipxe.org</a>> 于2019年4月13日周六 下午7:00写道:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Send ipxe-devel mailing list submissions to<br>
        <a href="mailto:ipxe-devel@lists.ipxe.org" target="_blank">ipxe-devel@lists.ipxe.org</a><br>
<br>
To subscribe or unsubscribe via the World Wide Web, visit<br>
        <a href="https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel" rel="noreferrer" target="_blank">https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel</a><br>
or, via email, send a message with subject or body 'help' to<br>
        <a href="mailto:ipxe-devel-request@lists.ipxe.org" target="_blank">ipxe-devel-request@lists.ipxe.org</a><br>
<br>
You can reach the person managing the list at<br>
        <a href="mailto:ipxe-devel-owner@lists.ipxe.org" target="_blank">ipxe-devel-owner@lists.ipxe.org</a><br>
<br>
When replying, please edit your Subject line so it is more specific<br>
than "Re: Contents of ipxe-devel digest..."<br>
<br>
<br>
Today's Topics:<br>
<br>
   1. Fwd: UEFI iscsi boot windows 7 slowly (junjie hua)<br>
<br>
<br>
----------------------------------------------------------------------<br>
<br>
Message: 1<br>
Date: Sat, 13 Apr 2019 05:18:07 +0800<br>
From: junjie hua <<a href="mailto:halouworls@gmail.com" target="_blank">halouworls@gmail.com</a>><br>
To: <a href="mailto:ipxe-devel@lists.ipxe.org" target="_blank">ipxe-devel@lists.ipxe.org</a><br>
Subject: [ipxe-devel] Fwd: UEFI iscsi boot windows 7 slowly<br>
Message-ID:<br>
        <<a href="mailto:CA%2BTA2aUG0b4HbOqTweccK0GfSqfYsCs1a7Ludz8JFWJddn0XOg@mail.gmail.com" target="_blank">CA+TA2aUG0b4HbOqTweccK0GfSqfYsCs1a7Ludz8JFWJddn0XOg@mail.gmail.com</a>><br>
Content-Type: text/plain; charset="utf-8"<br>
<br>
Hi all,<br>
<br>
Recently I got an issue on iscsi boot windows 7  with uefi :<br>
<br>
*ipxe takes  a long time before  windows  animation  boot logo appears.*<br>
<br>
*The detail: *<br>
<br>
Server: windows server 2012 with iscsi target(wintarget) + tftp32 + latest<br>
ipxe.efi / snponly.efi + gpt system image (128GB, three partitons: ESP,<br>
MSR, and win7 OS)<br>
Client : VMWARE 1000M NIC(E1000) with UEFI network boot enabled ,local hard<br>
disk removed.<br>
<br>
After ClientPC boot into ipxe shell , I type<br>
dhcp --> set keep-san 1 -> sanboot --no-describe<br>
iscsi:10.10.10.253::::iqn.2019.com.test:gpt<br>
, then the clientPC begin load OS image, but very slow, it takes about 3 -<br>
5 minutes before the windows animation boot logo appears.<br>
<br>
and at this time, I found the wintarget service in server side crashed,<br>
once I restart the wintarget service manually, it crashed soon(because ipxe<br>
will reconnect to target and retry the previous failed scsi cmd) , after<br>
crash -> restart for 10 - 20 times , the clientPC can successfully boot<br>
into windows desktop.<br>
<br>
I tried snponly.efi , and tried another VM with diffrent NIC(vmxnet3), the<br>
result always same. So I guess this is not a network or NIC driver problem,<br>
it maybe the ipxe send a wrong scsi command to iscsi target, and caused the<br>
target crash.<br>
<br>
at last, I fetched the latest IPXE source ,and compiled with<br>
DEBUG=iscsi,scsi,efi_block:2, enable syslog, then I replace ipxe.efi in<br>
server side, and reboot the clientPC.<br>
<br>
syslog I got after clientPC reboot:<br>
<br>
...................<br>
...................<br>
<br>
<6>ipxe: EFIBLK 0x80 read LBA 0x00032800 to 0xbf5000+0x00002000<br>
<6>ipxe: EFIBLK 0x80 read LBA 0x00072800 to 0xc04000+0x00004000<br>
<6>ipxe: EFIBLK 0x80 read LBA 0x00672800 to 0xbf5000+0x00000400<br>
<6>ipxe: EFIBLK 0x80 read LBA 0x0067280a to 0xbf5000+0x00000400<br>
<6>ipxe: EFIBLK 0x80 read LBA 0x00072960 to 0xc08000+0x00004000<br>
<6>ipxe: EFIBLK 0x80 read LBA 0x0067ab08 to 0xbf5000+0x00000400<br>
<6>ipxe: EFIBLK 0x80 read LBA 0x0101c830 to 0xbf5000+0x00002000<br>
<6>ipxe: EFIBLK 0x80 read LBA 0x004a5988 to 0x24c5000+0x014c2600<br>
<6>ipxe: iSCSI 0xe9a3008 closed: Connection reset (<a href="http://ipxe.org/0f0a6095" rel="noreferrer" target="_blank">http://ipxe.org/0f0a6095</a>)<br>
<6>ipxe: SCSI 0xe9a36e8 tag 18ae01e6 closed: Connection reset (<br>
<a href="http://ipxe.org/0f0a6095" rel="noreferrer" target="_blank">http://ipxe.org/0f0a6095</a>)<br>
<6>ipxe: iSCSI 0xe99fb08 initiator<br>
iqn.2010-04.org.ipxe:2dfe4d56-efb6-00a3-efcf-7a4242c83c9f<br>
<6>ipxe: iSCSI 0xe99fb08 target 10.10.10.253 iqn.2019.com.test:gpt<br>
<6>ipxe: iSCSI 0xe99fb08 entering security negotiation<br>
<6>ipxe: SCSI 0xe9a12e8 created for LUN 0000-0000-0000-0000<br>
<6>ipxe: iSCSI 0xe99fb08 closed: Connection reset (<a href="http://ipxe.org/0f0a6095" rel="noreferrer" target="_blank">http://ipxe.org/0f0a6095</a>)<br>
<6>ipxe: iSCSI 0xe99f908 initiator<br>
iqn.2010-04.org.ipxe:2dfe4d56-efb6-00a3-efcf-7a4242c83c9f<br>
<6>ipxe: iSCSI 0xe99f908 target 10.10.10.253 iqn.2019.com.test:gpt<br>
<6>ipxe: iSCSI 0xe99f908 entering security negotiation<br>
<6>ipxe: SCSI 0xe99fb28 created for LUN 0000-0000-0000-0000<br>
<6>ipxe: iSCSI 0xe99f908 closed: Connection reset (<a href="http://ipxe.org/0f0a6095" rel="noreferrer" target="_blank">http://ipxe.org/0f0a6095</a>)<br>
......................................<br>
......................................<br>
<br>
once the log line " <6>ipxe: EFIBLK 0x80 read LBA 0x004a5988 to 0x24c5000+<br>
0x014c2600 " appears , the wintarget crashed .<br>
from the source , the 0x014c2600 in the log means efi block io read  size,<br>
I don't understand why there is an io with read size set to 0x014c2600<br>
bytes (21M). (usually the request size in one efi block read io is 0x200 -<br>
0x100000. (512B - 64K))<br>
<br>
I simply add some code in the function efi_block_io_read (efi_block.c) :<br>
<br>
<br>
<br>
<br>
*if (len > 0x1000000){return EFI_BAD_BUFFER_SIZE;}*<br>
<br>
then the client can successfully boot with no errors in 30 - 40 seconds,<br>
and the target has not crash.<br>
But this is not a good solution, I think we need to figure out the reason<br>
why the "len" arg passed to efi_block_io_read is so large.<br>
<br>
<br>
The GPT disk image in the target and the physical disk of the server are<br>
all ok, I checked with HDTUNE ,no errors or warnnings.<br>
<br>
And I test in legacy bios with a MBR disk image, The boot slow problem and<br>
large size read request won't occurrs, only uefi.<br>
<br>
I readed the UEFI spec , it doesn't mentioned the max request size limits<br>
of block_io_read.<br>
<br>
Maybe the bug is in vmware efi block io protocol? or in wintarget? I'm not<br>
sure. (I haven't worked with uefi before today) .<br>
<br>
I'm going to test these on physical machine and try other linux based iscsi<br>
target next work day, but before it, is there any one can give some<br>
suggestions? really thanks!<br>
<br>
(I know the --no-descrbe option will cause windows can't find IBFT, and<br>
finally got 0x0000007B BSOD, so I had install my own iscsi-likely boot<br>
initiator driver into windows, it can works with out IBFT. so the issue I<br>
faced is not about IBFT)<br>
-------------- next part --------------<br>
An HTML attachment was scrubbed...<br>
URL: <<a href="http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20190413/89a140f6/attachment-0001.html" rel="noreferrer" target="_blank">http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20190413/89a140f6/attachment-0001.html</a>><br>
<br>
------------------------------<br>
<br>
_______________________________________________<br>
ipxe-devel mailing list<br>
<a href="mailto:ipxe-devel@lists.ipxe.org" target="_blank">ipxe-devel@lists.ipxe.org</a><br>
<a href="https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel" rel="noreferrer" target="_blank">https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel</a><br>
<br>
<br>
End of ipxe-devel Digest, Vol 107, Issue 7<br>
******************************************<br>
</blockquote></div>