From owner-freebsd-net@FreeBSD.ORG Wed Jul 27 16:45:44 2011 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 456D6106566B for ; Wed, 27 Jul 2011 16:45:44 +0000 (UTC) (envelope-from rysto32@gmail.com) Received: from mail-ew0-f54.google.com (mail-ew0-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id D78C18FC12 for ; Wed, 27 Jul 2011 16:45:43 +0000 (UTC) Received: by ewy1 with SMTP id 1so1966657ewy.13 for ; Wed, 27 Jul 2011 09:45:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=NOEs4lbqd+wGEd0eY4c0vJtDv5Jp0Smqltz/KJGoD4Q=; b=JjHlCoa224j30ojsydqwfkMC3Pi8JhZPdwCiFwfSci7pAlfZVOhDrjUL/U/xrTww2l 2W+fJAIU+TwrNXtubbB+Dpoziy4N//6/OGyIejHlKxABQHmcKV+RX+y/Hh25JnLNuFoT 4xpfWTu7WLKvuoY8APmn1iBx4spSVVWVnR4Ms= MIME-Version: 1.0 Received: by 10.213.105.145 with SMTP id t17mr18892ebo.31.1311785142292; Wed, 27 Jul 2011 09:45:42 -0700 (PDT) Received: by 10.213.31.194 with HTTP; Wed, 27 Jul 2011 09:45:41 -0700 (PDT) Date: Wed, 27 Jul 2011 12:45:41 -0400 Message-ID: From: Ryan Stone To: freebsd-net Content-Type: text/plain; charset=ISO-8859-1 Subject: pxeboot hangs if link bounces X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Jul 2011 16:45:44 -0000 I'm trying to track down a very mysterious problem I've having with pxebooting on 8.2-RELEASE and head (as of r224149). I've found that if I bring the link to a PXE client down and back up while it's in pxeboot, pxeboot hangs and never recovers. I've tried bouncing the link to the NFS server and I see the same behaviour, so I believe that the issue is really due to packet loss. I added printfs to the loader and I've found that the hang occurs when in vm86int() when it's called from pxe_call, from readudp. Once I bring down the link, vm86int() never returns. That's a BIOS bug -- PXENV_UDP_READ is defined to be non-blocking by the spec -- but what utterly mystifies me is that a 6.1-RELEASE pxeldr does not get blocked in a PXENV_UDP_READ call. I'm going to try a binary search to narrow down what set of changes introduced the problem, but I'm hoping that somebody might have an idea as to what could have changed that triggers this BIOS bug. I've tried building with -DOLD_NFSv2 but that didn't resolve the problem. Ryan Stone