From owner-freebsd-hackers@FreeBSD.ORG Tue Nov 23 06:16:40 2010 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A2534106564A for ; Tue, 23 Nov 2010 06:16:40 +0000 (UTC) (envelope-from avg@freebsd.org) Received: from citadel.icyb.net.ua (citadel.icyb.net.ua [212.40.38.140]) by mx1.freebsd.org (Postfix) with ESMTP id D96DA8FC1B for ; Tue, 23 Nov 2010 06:16:39 +0000 (UTC) Received: from porto.topspin.kiev.ua (porto-e.starpoint.kiev.ua [212.40.38.100]) by citadel.icyb.net.ua (8.8.8p3/ICyb-2.3exp) with ESMTP id IAA11859 for ; Tue, 23 Nov 2010 08:16:38 +0200 (EET) (envelope-from avg@freebsd.org) Received: from localhost.topspin.kiev.ua ([127.0.0.1]) by porto.topspin.kiev.ua with esmtp (Exim 4.34 (FreeBSD)) id 1PKmBC-000CYX-6v for freebsd-hackers@FreeBSD.org; Tue, 23 Nov 2010 08:16:38 +0200 Message-ID: <4CEB5C4C.90003@freebsd.org> Date: Tue, 23 Nov 2010 08:16:44 +0200 From: Andriy Gapon User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.12) Gecko/20101029 Lightning/1.0b2 Thunderbird/3.1.6 MIME-Version: 1.0 To: freebsd-hackers@freebsd.org X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=X-VIET-VPS Content-Transfer-Encoding: 7bit Subject: smp_rendezvous_cpus() vs sched_bind() X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 23 Nov 2010 06:16:40 -0000 If I need to call a function func on a specific CPU which one of the following I should use? 1. smp_rendezvous_cpus(1 << cpuid, ..., func, ...); 2. sched_bind(cpuid); func(); sched_unbind(); Or does it depend on some additional factors? What are the main differences here? And also by extension. If I need to execute func() on all CPUs - which one is better again - smp_rendezvous_cpus() or CPU_FOREACH+sched_bind? Thanks a lot! -- Andriy Gapon