From owner-freebsd-stable@FreeBSD.ORG Mon Mar 26 19:35:07 2007 Return-Path: X-Original-To: freebsd-stable@freebsd.org Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id DE13A16A403 for ; Mon, 26 Mar 2007 19:35:07 +0000 (UTC) (envelope-from rj@rjt.org) Received: from tungsten.twistweb.com (tungsten.twistweb.com [216.177.24.196]) by mx1.freebsd.org (Postfix) with ESMTP id B17C313C459 for ; Mon, 26 Mar 2007 19:35:07 +0000 (UTC) (envelope-from rj@rjt.org) Received: from [172.16.4.1] (gw1.avhnh.org [216.177.17.130]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tungsten.twistweb.com (Postfix) with ESMTP id 7F24B4096 for ; Mon, 26 Mar 2007 15:16:15 -0400 (EDT) Message-ID: <46081BFF.3000803@rjt.org> Date: Mon, 26 Mar 2007 15:16:15 -0400 From: "Ryan J. Taylor" User-Agent: Thunderbird 2.0b2 (Windows/20070116) MIME-Version: 1.0 To: freebsd-stable@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: possible bug in pxeboot with TFTP support X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Mar 2007 19:35:07 -0000 Hi all, I compiled pxeboot with TFTP support by doing: cd /usr/src/sys/boot make -DLOADER_TFTP_SUPPORT I have clients booting via PXE and grabbing their root filesystem from a memory disk. However, there was a long delay in the boot sequence. tcpdump revealed that after downloading pxeboot, the client was sending RPC traffic, presumably looking for NFS. This caused the boot to stall for 30 seconds or so until the loader spit out "NFS MOUNT RPC error: 60" and then continued booting via tftp. I traced the error string back to /usr/src/sys/boot/i386/libi386/pxe.c and came up with a hack that skips the RPC probes and speeds the boot for me. pxe-server# diff -u sys/boot/i386/libi386/pxe.c.orig sys/boot/i386/libi386/pxe.c --- sys/boot/i386/libi386/pxe.c.orig Mon Mar 26 14:50:19 2007 +++ sys/boot/i386/libi386/pxe.c Mon Mar 26 14:46:02 2007 @@ -443,9 +443,10 @@ * ourselves. Use nfs_root_node.iodesc as flag indicating * previous NFS usage. */ - if (nfs_root_node.iodesc == NULL) - pxe_rpcmountcall(); - +/* XXX + * if (nfs_root_node.iodesc == NULL) + * pxe_rpcmountcall(); + */ fh = &nfs_root_node.fh[0]; buf[0] = 'X'; cp = &buf[1]; I'm wondering if someone with a clue can take a peek and confirm that things ought to behave differently. What I've stumbled across doesn't break PXE booting with a TFTP root filesystem, it just makes it much slower. Maybe I'm doing something wrong? Regards, RJ