Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1161081pxb; Wed, 6 Apr 2022 10:08:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwftZ7+fXITXWOUHSgYTNfuWrmqR6uGMine2oBsWKTitjHl+ivxFSb/RiUUW1cT0nP/7kpn X-Received: by 2002:a63:c015:0:b0:385:fe06:eb86 with SMTP id h21-20020a63c015000000b00385fe06eb86mr7840953pgg.132.1649264939567; Wed, 06 Apr 2022 10:08:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1649264939; cv=none; d=google.com; s=arc-20160816; b=OBm9wkWK5Eva5WIaTfJFILeKgj7JZhS/DmW4mcuxwypCGap5C9gtoTgkndAJF3Pe4G AsbYFcByJPcp+o5X0rNAM93FdV0U4sV71lEwjKSeFjL6NLUymi2/wW0fLxQaQkN06TXB ifJUszgPaK2X6d2uRzb1iHfE90WVprHIiPe6LzTgUd+77zy6BLPT1C23/6Z6CxBlZ2ML NC7FMqIqPrtpfQ9xcypnM/wHSM/FUIS+Y8Jz6hEVn5xEfqhNQHDN/KiRlqEVKaChy3/z 9WHQrRtVZ0TZtSwKnhaDwL5W4eu+lu6066x0UVAB6GoolqHTKVEzolyMHr78l5tAgwe/ gZBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=edxkcn/vXTQrPZmEvbrycB6QtSNdKCqqu4nikxfDLOU=; b=Dddlfm1bWZ8mkntXCzlu5B4eTbvZUytXsosj6e8k0klEzan0vSB6Qz6dtOSOH1CkGH I+DDISqt5+9S9iH33AYIPSxyMCn98cd9MoD45DEbf8igUCfoFxxkx4T5q7GJrCOQ35/T zTsCT/TOcVwHEv+wqeYncHelpLGN09k6C9UNW6aPGT7F3PqCjDd/jhBKaYWShDMrEEeV 3LfByuJnG8eSyC0XePX/lGO+Lrbeg3ppTlYzbz6CA9Gngq0HquhGYBr9m8WtDRaSqwMo mv6by8cv+jO4lv+1PpOmodBOWmYsAEBk4IasXTJMKBplu+7dxGYhJfKuTIIlqoiUgMhH TRiQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=bUznwvLN; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id p10-20020a056a000b4a00b004fa3a8dff4fsi17491228pfo.6.2022.04.06.10.08.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 06 Apr 2022 10:08:59 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=bUznwvLN; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id E820F209A4F; Wed, 6 Apr 2022 09:53:54 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238394AbiDFQzg (ORCPT + 99 others); Wed, 6 Apr 2022 12:55:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50592 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238316AbiDFQzI (ORCPT ); Wed, 6 Apr 2022 12:55:08 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id A7C447DE3D for ; Wed, 6 Apr 2022 07:55:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649256939; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=edxkcn/vXTQrPZmEvbrycB6QtSNdKCqqu4nikxfDLOU=; b=bUznwvLNFzkvun21+iJsvwufNwztAybzUlGXCyb3R5yXhzpx2gANX2tzOmpkHShidmuGc1 XPhr9TCAF15rPZyF+THXW4+Ec2WekaYOs4I5/aDboU9l5nb86F4hPQBYBCrpDnKgSowUPK QCDu8JWzQgHbrG8qg7gfaz7a/u5xWz8= Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-160-yUseNoLDNbGLCUaotm0_tg-1; Wed, 06 Apr 2022 10:55:38 -0400 X-MC-Unique: yUseNoLDNbGLCUaotm0_tg-1 Received: by mail-ed1-f69.google.com with SMTP id w8-20020a50d788000000b00418e6810364so1347834edi.13 for ; Wed, 06 Apr 2022 07:55:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=edxkcn/vXTQrPZmEvbrycB6QtSNdKCqqu4nikxfDLOU=; b=WDhxS34PU7fUc64SilTMzDQ0OFI4noCaDUjbvW/sjLux11EUvZaP0OIwIve2KXuNVW wCbjyJJIQ+9Rdgt3dsIw7hcXksiEMMde3jBXVtT68Ivc/5S5XSJ7lIytum38pxy/Y8ck /sZyUto7fwLk9fFvV8W0TaaYiIThsTv+hY7Vitcj6E4XEIrfjxFnz2woBQLC5+n4lUqN hqmjzJa9zF+fT0TiAtQRI1kYs38kgO9xtTswjebkH2U9AOwX3LZJ2OCaJtURAndpHFaQ RtL50ZWfCiw9/r20nvqwzDPaN5BhjB+jh3E5YYBfyTNUAVmGw3rCwkL0X6wvK7ax8qOM FXZg== X-Gm-Message-State: AOAM530ZA10Gb4IoMGgtf7ZwKvCUpZuKWPIpXJtqHC2eCRrOmwS2bzQg bNbR0M5bOe3jawPLzfa9VYOghr8zsEBMBJeX97hfNejlYjb8G5oggqcYIcBMwqfmEN5Ow241XZ0 y8cj7GmUPL01sXpJ3173HNdWiLB3E2KvbCAEG43ge X-Received: by 2002:a17:907:60cf:b0:6db:f0a6:74af with SMTP id hv15-20020a17090760cf00b006dbf0a674afmr8456727ejc.317.1649256937568; Wed, 06 Apr 2022 07:55:37 -0700 (PDT) X-Received: by 2002:a17:907:60cf:b0:6db:f0a6:74af with SMTP id hv15-20020a17090760cf00b006dbf0a674afmr8456713ejc.317.1649256937399; Wed, 06 Apr 2022 07:55:37 -0700 (PDT) MIME-Version: 1.0 References: <20220202140244.1681140-1-neelx@redhat.com> <874k361liu.ffs@tglx> In-Reply-To: <874k361liu.ffs@tglx> From: Daniel Vacek Date: Wed, 6 Apr 2022 16:54:39 +0200 Message-ID: Subject: Re: [PATCH] [RFC] apic: fix timer base macro definitions To: Thomas Gleixner Cc: "H. Peter Anvin" , Ingo Molnar , Borislav Petkov , Dave Hansen , x86@kernel.org, open list Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Apr 6, 2022 at 1:56 PM Thomas Gleixner wrote: > > Daniel, > > On Wed, Feb 02 2022 at 15:02, Daniel Vacek wrote: > > I was wondering if the aliasing of APIC_TIMER_BASE_TMBASE and > > APIC_LVT_TIMER_TSCDEADLINE was intentional or we need to << 19? > > That's intentional. This is only used for the !lapic_is_integrated() > case, which is the ancient i82489DX. > > Something like the below should make this more clear. Nah. Makes sense. Thanks for clearing that up. Looks good to me now. --nX > Thanks, > > tglx > --- > --- a/arch/x86/include/asm/apicdef.h > +++ b/arch/x86/include/asm/apicdef.h > @@ -95,12 +95,6 @@ > #define APIC_LVTTHMR 0x330 > #define APIC_LVTPC 0x340 > #define APIC_LVT0 0x350 > -#define APIC_LVT_TIMER_BASE_MASK (0x3 << 18) > -#define GET_APIC_TIMER_BASE(x) (((x) >> 18) & 0x3) > -#define SET_APIC_TIMER_BASE(x) (((x) << 18)) > -#define APIC_TIMER_BASE_CLKIN 0x0 > -#define APIC_TIMER_BASE_TMBASE 0x1 > -#define APIC_TIMER_BASE_DIV 0x2 > #define APIC_LVT_TIMER_ONESHOT (0 << 17) > #define APIC_LVT_TIMER_PERIODIC (1 << 17) > #define APIC_LVT_TIMER_TSCDEADLINE (2 << 17) > --- a/arch/x86/kernel/apic/apic.c > +++ b/arch/x86/kernel/apic/apic.c > @@ -320,6 +320,9 @@ int lapic_get_maxlvt(void) > #define APIC_DIVISOR 16 > #define TSC_DIVISOR 8 > > +/* i82489DX specific */ > +#define I82489DX_BASE_DIVIDER (((0x2) << 18)) > + > /* > * This function sets up the local APIC timer, with a timeout of > * 'clocks' APIC bus clock. During calibration we actually call > @@ -340,8 +343,14 @@ static void __setup_APIC_LVTT(unsigned i > else if (boot_cpu_has(X86_FEATURE_TSC_DEADLINE_TIMER)) > lvtt_value |= APIC_LVT_TIMER_TSCDEADLINE; > > + /* > + * The i82489DX APIC uses bit 18 and 19 for the base divider. This > + * overlaps with bit 18 on integrated APICs, but is not documented > + * in the SDM. No problem though. i82489DX equipped systems do not > + * have TSC deadline timer. > + */ > if (!lapic_is_integrated()) > - lvtt_value |= SET_APIC_TIMER_BASE(APIC_TIMER_BASE_DIV); > + lvtt_value |= I82489DX_BASE_DIVIDER; > > if (!irqen) > lvtt_value |= APIC_LVT_MASKED; >