From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753254AbcHOTam (ORCPT ); Mon, 15 Aug 2016 15:30:42 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:48332 "EHLO out2-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752941AbcHOTai (ORCPT ); Mon, 15 Aug 2016 15:30:38 -0400 X-Sasl-enc: iReSWVnYoUngHm7vGn4De/ZYZbGn7V07r0pSgJwPV3+i 1471289436 Message-ID: <1471289435.8946.28.camel@cvidal.org> Subject: sched: current instead rq->current From: Colin Vidal To: linux-kernel@vger.kernel.org Date: Mon, 15 Aug 2016 21:30:35 +0200 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.20.5 (3.20.5-1.fc24) Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, At the beginning of __schedule (kernel/sched/core.c), the current task is get with rq->curr. I try to to understand why not directly using current instead? Since a runqueue is specific to a CPU, it dosen't make sense to get the the current task of another CPU's runqueue. Yes? I try the following of Linus's master branch -       int cpu;   -       cpu = smp_processor_id(); -       rq = cpu_rq(cpu); -       prev = rq->curr; +       rq = cpu_rq(smp_processor_id()); +       prev = current; and it seems to work (only tested on x86-64), but... To simple? Thanks! Colin