From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linutronix.de (193.142.43.55:993) by crypto-ml.lab.linutronix.de with IMAP4-SSL for ; 26 Sep 2019 01:18:35 -0000 Received: from mga06.intel.com ([134.134.136.31]) by Galois.linutronix.de with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1iDIQT-0005KT-QC for speck@linutronix.de; Thu, 26 Sep 2019 03:18:34 +0200 Date: Wed, 25 Sep 2019 18:13:05 -0700 From: Pawan Gupta Subject: [MODERATED] Re: [PATCH v4 03/10] TAAv4 3 Message-ID: <20190926011305.GD16811@guptapadev.amr> References: <5b6df5ee-a5b7-c281-de29-af6544b8abb6@intel.com> <20190906074645.GE13480@guptapadev.amr> <20190925224817.zcmzswojw5tmymul@treble> MIME-Version: 1.0 In-Reply-To: <20190925224817.zcmzswojw5tmymul@treble> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit To: speck@linutronix.de List-ID: > > > > +static int __init tsx_cmdline(char *str) > > > > +{ > > > > + if (!str) > > > > + return -EINVAL; > > > > + > > > > + if (!strcmp(str, "on")) > > > > + tsx_ctrl_state = TSX_CTRL_ENABLE; > > > > + else if (!strcmp(str, "off")) > > > > + tsx_ctrl_state = TSX_CTRL_DISABLE; > > > > + > > > > + return 0; > > > > +} > > > > +early_param("tsx", tsx_cmdline); > > > > > > Hmm... Let's say I have a non-TSX system. I specify tsx=on. This will > > > set tsx_ctrl_state=TSX_CTRL_ENABLE, then tsx_ctrl_check_support() will > > > set it to tsx_ctrl_state=TSX_CTRL_NOT_SUPPORTED. > > > > > > I *think* this all works, but I'd love a comment or two about it. Maybe > > > even something that makes it clear that tsx_en/disable() are both only > > > called when TSX *AND* TSX_CTRL_MSR are supported. > > > > > > This is all kinda weird and confusing because we're doing this all > > > without the X86_FEATURE bits for TSX. > > > > If we add another X86_FEATURE bit it will have exact same state as > > X86_FEATURE_RTM. Do we really need this? > > How about moving the tsx_init() call to early_init_intel()? Then you'd > be able to check the feature bit above. And that might make the > ordering a little easier to follow. Sorry, I am failing to understand how it would make a difference. early_init_intel() is also called from init_init(). Thanks, Pawan