From owner-p4-projects@FreeBSD.ORG Thu Sep 9 19:49:35 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AF54216A4D0; Thu, 9 Sep 2004 19:49:34 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6E6C116A4CE for ; Thu, 9 Sep 2004 19:49:34 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 618AE43D4C for ; Thu, 9 Sep 2004 19:49:34 +0000 (GMT) (envelope-from jhb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.11/8.12.11) with ESMTP id i89JnYj6024021 for ; Thu, 9 Sep 2004 19:49:34 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.11/8.12.11/Submit) id i89JnY2x024018 for perforce@freebsd.org; Thu, 9 Sep 2004 19:49:34 GMT (envelope-from jhb@freebsd.org) Date: Thu, 9 Sep 2004 19:49:34 GMT Message-Id: <200409091949.i89JnY2x024018@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Subject: PERFORCE change 61257 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 09 Sep 2004 19:49:35 -0000 http://perforce.freebsd.org/chv.cgi?CH=61257 Change 61257 by jhb@jhb_slimer on 2004/09/09 19:48:37 Minor nits I noticed while looking in here: - Just use sched_prio() directly rather than taking the long detour through the rtprio crap. - Only switch away if there is another runnable thread, switching away when there isn't is just stupid as we end up switching right back to ourselves which only serves to waste time. Affected files ... .. //depot/projects/smpng/sys/vm/vm_zeroidle.c#19 edit Differences ... ==== //depot/projects/smpng/sys/vm/vm_zeroidle.c#19 (text+ko) ==== @@ -138,36 +138,28 @@ vm_pagezero(void __unused *arg) { struct proc *p; - struct rtprio rtp; struct thread *td; - int pages, pri; td = curthread; p = td->td_proc; - rtp.prio = RTP_PRIO_MAX; - rtp.type = RTP_PRIO_IDLE; - pages = 0; mtx_lock_spin(&sched_lock); - rtp_to_pri(&rtp, td->td_ksegrp); - pri = td->td_priority; + sched_prio(td, PRI_MAX_IDLE); mtx_unlock_spin(&sched_lock); idlezero_enable = idlezero_enable_default; for (;;) { if (vm_page_zero_check()) { - pages += vm_page_zero_idle(); + vm_page_zero_idle(); #ifndef PREEMPTION - if (pages > idlezero_maxrun || sched_runnable()) { + if (sched_runnable()) { mtx_lock_spin(&sched_lock); mi_switch(SW_VOL, NULL); mtx_unlock_spin(&sched_lock); - pages = 0; } #endif - } else { - tsleep(&zero_state, pri, "pgzero", hz * 300); - pages = 0; - } + } else + tsleep(&zero_state, td->td_priority, "pgzero", + hz * 300); } }