I have a problem with the binary PXEBOOT and the nfs / diskless setup setup. Unfortunately, PXEBOOT loads the kernel with i219LM NICs very slowly. It takes up to 15 minutes to load the kernel. Compared to a Realtek or i210 / i211 NIC, it only takes 2 minutes to load the kernel. ``` BTX loader 1.00 BTX version is 1.02 ... Loading /boot/defaults/loader.conf /boot/kernel/kernel text=0xed9008 data=0x117d28+0x176650 syms=[0x8+0x137988+0x8+0x1515f8] ```
Are you really sure your problem is caused by different NICs ? I had the same problem and the slowness came from incoming ARPs. In a network without ARP traffic pxeboot had normal speed. I could solve my problem with the following patch for V12.1 Stable: --- pxe.c.orig 2019-01-13 08:25:55.000000000 +0100 +++ pxe.c 2020-06-15 21:30:19.000000000 +0200 @@ -424,7 +424,7 @@ if (undi_open_p == NULL) return; bzero(undi_open_p, sizeof(*undi_open_p)); - undi_open_p->PktFilter = FLTR_DIRECTED | FLTR_BRDCST; + undi_open_p->PktFilter = FLTR_DIRECTED; pxe_call(PXENV_UNDI_OPEN, undi_open_p); if (undi_open_p->Status != 0) printf("undi open failed: %x\n", undi_open_p->Status); For more info see https://lists.freebsd.org/pipermail/freebsd-net/2020-June/056025.html Andreas Longwitz
(In reply to Michel Popp from comment #0) I suspect that https://cgit.freebsd.org/src/commit/stand/i386?id=3daa8e165c661c1b45e759f4997f447384c15446 is the actual cause of this, can you please test with that patch applied or let me know if you'd accept a pxeboot binary to try it?
I can confirm the patch worked for me in V12.2, my kernel of 20 MB loads in 32 seconds. Because now ERESTART is used I have the line #define _WANT_KERNEL_ERRNO 1 included in the sourcefile pxe.c.
(In reply to longwitz from comment #3) What method was used to load kernel, tftp or nfs?
(In reply to longwitz from comment #3) Yup, sorry, I MFC'd 0c35b8609138 to stable/11 and stable/12 just last week which will remove the need for it in the future.
@Kyle Is this then assignable and In Progress? Anything left to do post commits / merges that have already occurred?
(In reply to Kubilay Kocak from comment #6) I am/was hoping to get confirmation from the original reporter as well that the referenced commit fixes their issue before I commit to touching this PR -- it's been sitting for over a year, though, so it might be better to just assume it's the same problem (it probably is) and it can be reopened if the problem recurs after it makes its way through the release process.
On pxeboot my kernel is loaded with nfs. My nfs server runs on an older system with FreeBSD 10.4 Stable and without nfsv4. And of course with commit 0c35b8609138 I do not need the #define anymore.
(In reply to Kyle Evans from comment #7) Thanks for reply. I have tested the patch, but unfortunately the btx is stopped if I try to boot pxeboot on a Intel server with i219LM.. on a AMD server is it working fine.
(In reply to Michel Popp from comment #9) Would need BTX screen dump and information, which version of pxeboot binary was used.
Closing, problem fixed in https://cgit.freebsd.org/src/commit/stand/i386?id=3daa8e165c661c1b45e759f4997f447384c15446.