From owner-p4-projects@FreeBSD.ORG Fri Jan 18 16:06:45 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DBEF816A41B; Fri, 18 Jan 2008 16:06:44 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A142916A417 for ; Fri, 18 Jan 2008 16:06:44 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 78F5713C44B for ; Fri, 18 Jan 2008 16:06:44 +0000 (UTC) (envelope-from scottl@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m0IG6iWC077263 for ; Fri, 18 Jan 2008 16:06:44 GMT (envelope-from scottl@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m0IG6ixE077260 for perforce@freebsd.org; Fri, 18 Jan 2008 16:06:44 GMT (envelope-from scottl@freebsd.org) Date: Fri, 18 Jan 2008 16:06:44 GMT Message-Id: <200801181606.m0IG6ixE077260@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to scottl@freebsd.org using -f From: Scott Long To: Perforce Change Reviews Cc: Subject: PERFORCE change 133554 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 18 Jan 2008 16:06:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=133554 Change 133554 by scottl@scottl-ix on 2008/01/18 16:05:48 Apply an even bigger hammer to get xenstore messages to work during early boot. Also note that the previous checkin added basic xenhub and xenbus newbus devices. Affected files ... .. //depot/projects/xen31-xenbus/sys/xen/xenbus/xenbus_probe.c#3 edit .. //depot/projects/xen31-xenbus/sys/xen/xenbus/xenbus_xs.c#2 edit Differences ... ==== //depot/projects/xen31-xenbus/sys/xen/xenbus/xenbus_probe.c#3 (text+ko) ==== ==== //depot/projects/xen31-xenbus/sys/xen/xenbus/xenbus_xs.c#2 (text+ko) ==== @@ -146,22 +146,22 @@ char *body; int i; - if (scheduler_running == 0) { + + spin_lock(&xs_state.reply_lock); + + while (list_empty(&xs_state.reply_list)) { + spin_unlock(&xs_state.reply_lock); + if (scheduler_running == 0) { /* * Give other domain time to run :-/ */ - for (i = 0; i < 10000; i++) - HYPERVISOR_yield(); + for (i = 0; i < 1000000; i++) + HYPERVISOR_yield(); xs_process_msg(); - } - - spin_lock(&xs_state.reply_lock); - - while (list_empty(&xs_state.reply_list)) { - spin_unlock(&xs_state.reply_lock); - wait_event_interruptible(&xs_state.reply_waitq, - !list_empty(&xs_state.reply_list)); - spin_lock(&xs_state.reply_lock); + } + wait_event_interruptible(&xs_state.reply_waitq, + !list_empty(&xs_state.reply_list)); + spin_lock(&xs_state.reply_lock); } msg = TAILQ_FIRST(&xs_state.reply_list);