Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp873854imm; Tue, 15 May 2018 10:22:40 -0700 (PDT) X-Google-Smtp-Source: AB8JxZoru+eRe05xFnk6t5RsBTm5MgHu8ZvBK8F1Zn/9Nv8rOpsIfBGbCxBLd4XLMlf4D5YNq63E X-Received: by 2002:a17:902:70c9:: with SMTP id l9-v6mr15212150plt.382.1526404959980; Tue, 15 May 2018 10:22:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526404959; cv=none; d=google.com; s=arc-20160816; b=QcU9OWsYbBZoEkVdVOolKbP3KOR680Mv5I7OsZ2/OOFh9pZ4nP1lTvcLNhnPLW6ryR Z22gwK+x1M4uVNO2sIsfAsu8Xy8MRJkd/EaRaW1v4BBz4BNmyBY7NUhE/ASukj5W8+U5 glPMxhQXw+Su/cy6rdylrZ+q4GsvLo4P5APxZowYoKv/PSTQ82+gg0ZX4tNAJeDJSFEK kERmUjoLvA208px/8PP7xYf7P3NdSYHGwpYiybA3yKP0do7h7+5YqYWuhlc84DqXYAyZ NBqhvEWslZsU7Pv+z8aO9PVcwfSFQP4i8a+ohd09VPq2ns85i+kzGMiJH95OdTIQ2uCR saqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature :arc-authentication-results; bh=wfTa3sLa5fI37fQTxkhBr548wzWfK1TIPSmwhMwQfxo=; b=G5luHMATdsy4z0GfFvy2b4BKdrW6QeAP37ZSIDeY5ydv4VdwGyVq5b3VwF5pppfHMK ZCK0GDS+i1XwHIkYdTktHOy5J4HCWg3T9zOGfJJBQurCDOB+P3Qr2v6bNIMUuC/GjRR5 /8dKjkmBUz07wcBL8Vjemeir+1L6hUeMrxjs6CzJoVLXFQ6H8nsusDHtI539qSZ7UKPb x6An7sjCQfQjcHBANZbvHAOHWLeMkld7ISl3h0qQ/MKKAFiDIBrTX9sZtrzCPgvlscp6 /hWe1fjZDuV3mTuWIdWOz4o+m1UOKu2opRySSYh7M6OBEBEQRTNlspYGUaP4bbmzGAWD z1RA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=TDqhFPXX; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b84-v6si548218pfb.189.2018.05.15.10.22.18; Tue, 15 May 2018 10:22:39 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linux-foundation.org header.s=google header.b=TDqhFPXX; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932187AbeEORVy (ORCPT + 99 others); Tue, 15 May 2018 13:21:54 -0400 Received: from mail-it0-f65.google.com ([209.85.214.65]:35351 "EHLO mail-it0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753575AbeEORVx (ORCPT ); Tue, 15 May 2018 13:21:53 -0400 Received: by mail-it0-f65.google.com with SMTP id q72-v6so3662818itc.0 for ; Tue, 15 May 2018 10:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wfTa3sLa5fI37fQTxkhBr548wzWfK1TIPSmwhMwQfxo=; b=TDqhFPXXhH/cJI5zK9YxKFanLyrvO8oHK1bw0XxEISuTpxMwMNNGpQkoL+yzG6WGgU KjuVrMNRXFZqMkx92pGhQFQnukCZq8qVbvGNr7svWvb+wfTjcCVc2Y4PE9/Iyvs8BGRR 1vaQMCObHLsQNRUIR8rMVpEwQ+Onr7qY6DqoU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=wfTa3sLa5fI37fQTxkhBr548wzWfK1TIPSmwhMwQfxo=; b=nNhdBofKEnldD1I/a7LXD7+qs+aXu3Y3eco+B6Hjs9N6IKFfZtWn68pc+je6zhZ3iZ LiqhYatxsfLY4zznT9FGU/PvKR+diyqu/Ahoc9fl7IonRLTB7FVKLR6u9sdG8Rxa8KeB UAWIXtfDbGDZ8WIc/L0KMTtalnSWkdWHRor7XRjQryyrVi9RBmA5mi9PWMkhKyu18ZMq +By72OmQ5noxO9DFb195OWK2QULxnprl3VhDO6QXXuK9BHyluTeOKiaxBhS710ZCXeTv rCCIeQyzZBI29OoWZc6uAFlpojNJYjpa2JBcs+KIHB6wS3Y+uQujpS4M4vmN+zgUPMpM UuZQ== X-Gm-Message-State: ALKqPweA7Tn0LNiZVs9ncVVItgxzvDMLZjkjLLrdbYIngcHYWRYAVTLi EUJTpqbl8GNDjbrVslhtP78p0l/lotcsIHyz6Ww= X-Received: by 2002:a24:21ca:: with SMTP id e193-v6mr15141248ita.108.1526404912635; Tue, 15 May 2018 10:21:52 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Linus Torvalds Date: Tue, 15 May 2018 10:21:41 -0700 Message-ID: Subject: Re: for_each_cpu() is buggy for UP kernel? To: Dexuan Cui Cc: Ingo Molnar , Alexey Dobriyan , Andrew Morton , Peter Zijlstra , Thomas Gleixner , Greg Kroah-Hartman , Rakib Mullick , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, May 14, 2018 at 8:02 PM Dexuan Cui wrote: > If you're OK with the below fix (not tested yet), I'll submit a patch for it: > --- a/kernel/time/tick-broadcast.c > +++ b/kernel/time/tick-broadcast.c > @@ -616,6 +616,10 @@ static void tick_handle_oneshot_broadcast(struct clock_event_device *dev) > now = ktime_get(); > /* Find all expired events */ > for_each_cpu(cpu, tick_broadcast_oneshot_mask) { > +#ifndef CONFIG_SMP > + if (cpumask_empty(tick_broadcast_oneshot_mask)) > + break; > +#endif I'm certainly ok with this. It's hacky, but maybe being explicitly hacky is good to "document" this gotcha. And I really do agree that this special UP case is nasty nasty and much too subtle, and I hope that some day we won't care about UP at all, and maybe kill it, or maybe just make for_each_cpu() generate the extra code to have the actual same semantics as the SMP case. Linus