All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zheng, Lv" <lv.zheng@intel.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: "Moore, Robert" <robert.moore@intel.com>,
	"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>,
	Len Brown <lenb@kernel.org>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"devel@acpica.org" <devel@acpica.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: RE: [PATCH] ACPICA: Export mutex functions
Date: Mon, 17 Apr 2017 23:37:55 +0000	[thread overview]
Message-ID: <1AE640813FDE7649BE1B193DEA596E886CE93CE7@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: <20170417155646.GA8730@roeck-us.net>

Hi,

> From: Guenter Roeck [mailto:linux@roeck-us.net]
> Subject: Re: [PATCH] ACPICA: Export mutex functions
> 
> Hi,
> 
> On Mon, Apr 17, 2017 at 09:39:35AM +0000, Zheng, Lv wrote:
> > Hi,
> >
> > > From: Guenter Roeck [mailto:linux@roeck-us.net]
> > > Subject: Re: [PATCH] ACPICA: Export mutex functions
> > >
> > > On Wed, Apr 12, 2017 at 03:29:55PM +0000, Moore, Robert wrote:
> > > > The ACPICA mutex functions are based on the host OS functions, so they don't really buy you
> anything.
> > > You should just use the native Linux functions.
> > > >
> > >
> > > You mean they don't really acquire the requested ACPI mutex,
> > > and the underlying DSDT which declares and uses the mutex
> > > just ignores if the mutex was acquired by acpi_acquire_mutex() ?
> > >
> > > To clarify: You are saying that code such as
> > >
> > > 	acpi_status status;
> > >
> > > 	status = acpi_acquire_mutex(NULL, "\\_SB.PCI0.SBRG.SIO1.MUT0", 0x10);
> > > 	if (ACPI_FAILURE(status)) {
> > > 		pr_err("Failed to acquire ACPI mutex\n");
> > > 		return -EBUSY;
> > > 	}
> >
> > Why do you need to access \_SB.PCI0.SBRG.SIO1.MUT0?
> > OSPM should only invoke entry methods predefined by ACPI spec or whatever specs.
> > There shouldn't be any needs that a driver acquires an arbitrary AML mutex.
> > You do not seem to have justified the usage model, IMO.
> >
> 
> I am sorry, I have no idea how to do that. I can see that the resource in
> question (IO address 0x2e/0x2f) is accessed from the DSDT, that the resource
> is mutex protected, and that accesses to the same IO address from the Linux
> kernel are unreliable unless I acquire the mutex in question. At the same time,
> I can see that request_muxed_region() succeeds, so presumably ACPI does not
> reserve the region for its exclusive use.

Please refer to my previous reply.
Why don't you make it safe in super IO driver and the opregion driver in first place.
Then check if you still need to acquire the mutex.

> 
> It may well be that the "official" response to this problem is "you must
> not instantiate a watchdog, environmental monitor, or gpio driver (or anything
> else provided by the Super-IO chip that requires access to those ports) on this
> platform in Linux". Is that what you are suggesting ?
> 

I didn't mean that.
Probably you have synchronization problems in the OS driver.

Thanks and best regards
Lv

> Thanks,
> Guenter

WARNING: multiple messages have this Message-ID (diff)
From: Zheng, Lv <lv.zheng at intel.com>
To: devel@acpica.org
Subject: Re: [Devel] [PATCH] ACPICA: Export mutex functions
Date: Mon, 17 Apr 2017 23:37:55 +0000	[thread overview]
Message-ID: <1AE640813FDE7649BE1B193DEA596E886CE93CE7@SHSMSX101.ccr.corp.intel.com> (raw)
In-Reply-To: 20170417155646.GA8730@roeck-us.net

[-- Attachment #1: Type: text/plain, Size: 2456 bytes --]

Hi,

> From: Guenter Roeck [mailto:linux(a)roeck-us.net]
> Subject: Re: [PATCH] ACPICA: Export mutex functions
> 
> Hi,
> 
> On Mon, Apr 17, 2017 at 09:39:35AM +0000, Zheng, Lv wrote:
> > Hi,
> >
> > > From: Guenter Roeck [mailto:linux(a)roeck-us.net]
> > > Subject: Re: [PATCH] ACPICA: Export mutex functions
> > >
> > > On Wed, Apr 12, 2017 at 03:29:55PM +0000, Moore, Robert wrote:
> > > > The ACPICA mutex functions are based on the host OS functions, so they don't really buy you
> anything.
> > > You should just use the native Linux functions.
> > > >
> > >
> > > You mean they don't really acquire the requested ACPI mutex,
> > > and the underlying DSDT which declares and uses the mutex
> > > just ignores if the mutex was acquired by acpi_acquire_mutex() ?
> > >
> > > To clarify: You are saying that code such as
> > >
> > > 	acpi_status status;
> > >
> > > 	status = acpi_acquire_mutex(NULL, "\\_SB.PCI0.SBRG.SIO1.MUT0", 0x10);
> > > 	if (ACPI_FAILURE(status)) {
> > > 		pr_err("Failed to acquire ACPI mutex\n");
> > > 		return -EBUSY;
> > > 	}
> >
> > Why do you need to access \_SB.PCI0.SBRG.SIO1.MUT0?
> > OSPM should only invoke entry methods predefined by ACPI spec or whatever specs.
> > There shouldn't be any needs that a driver acquires an arbitrary AML mutex.
> > You do not seem to have justified the usage model, IMO.
> >
> 
> I am sorry, I have no idea how to do that. I can see that the resource in
> question (IO address 0x2e/0x2f) is accessed from the DSDT, that the resource
> is mutex protected, and that accesses to the same IO address from the Linux
> kernel are unreliable unless I acquire the mutex in question. At the same time,
> I can see that request_muxed_region() succeeds, so presumably ACPI does not
> reserve the region for its exclusive use.

Please refer to my previous reply.
Why don't you make it safe in super IO driver and the opregion driver in first place.
Then check if you still need to acquire the mutex.

> 
> It may well be that the "official" response to this problem is "you must
> not instantiate a watchdog, environmental monitor, or gpio driver (or anything
> else provided by the Super-IO chip that requires access to those ports) on this
> platform in Linux". Is that what you are suggesting ?
> 

I didn't mean that.
Probably you have synchronization problems in the OS driver.

Thanks and best regards
Lv

> Thanks,
> Guenter

  parent reply	other threads:[~2017-04-17 23:38 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-12 15:13 [PATCH] ACPICA: Export mutex functions Guenter Roeck
2017-04-12 15:29 ` Moore, Robert
2017-04-12 15:29   ` [Devel] " Moore, Robert
2017-04-12 21:22   ` Guenter Roeck
2017-04-12 21:56     ` Moore, Robert
2017-04-12 21:56       ` [Devel] " Moore, Robert
2017-04-13  0:55       ` Guenter Roeck
2017-04-14 22:30       ` Rafael J. Wysocki
2017-04-14 23:32         ` Moore, Robert
2017-04-14 23:32           ` [Devel] " Moore, Robert
2017-04-17  9:39     ` Zheng, Lv
2017-04-17  9:39       ` [Devel] " Zheng, Lv
2017-04-17  9:48       ` Zheng, Lv
2017-04-17  9:48         ` [Devel] " Zheng, Lv
2017-04-17 14:05         ` Guenter Roeck
2017-04-17 23:35           ` Zheng, Lv
2017-04-17 23:35             ` [Devel] " Zheng, Lv
2017-04-17 15:56       ` Guenter Roeck
2017-04-17 17:12         ` Moore, Robert
2017-04-17 17:12           ` [Devel] " Moore, Robert
2017-04-17 19:27           ` Moore, Robert
2017-04-17 19:27             ` [Devel] " Moore, Robert
2017-04-17 19:45             ` Guenter Roeck
2017-04-17 20:40               ` Moore, Robert
2017-04-17 20:40                 ` [Devel] " Moore, Robert
2017-04-17 21:03                 ` Guenter Roeck
2017-04-17 21:29                   ` Rafael J. Wysocki
2017-04-17 22:32                     ` Guenter Roeck
2017-04-17 22:56                       ` Rafael J. Wysocki
2017-04-17 23:53                       ` Zheng, Lv
2017-04-17 23:53                         ` [Devel] " Zheng, Lv
2017-04-18  4:35                         ` Guenter Roeck
2017-04-18  7:06                           ` Zheng, Lv
2017-04-18  7:06                             ` [Devel] " Zheng, Lv
2017-04-18  7:14                           ` Zheng, Lv
2017-04-18  7:14                             ` [Devel] " Zheng, Lv
2017-04-18 13:50                             ` Guenter Roeck
2017-04-18 14:15                               ` Rafael J. Wysocki
2017-04-18 16:07                                 ` Moore, Robert
2017-04-18 16:07                                   ` [Devel] " Moore, Robert
2017-04-19  1:26                               ` Zheng, Lv
2017-04-19  1:26                                 ` [Devel] " Zheng, Lv
2017-04-19  1:35                                 ` Zheng, Lv
2017-04-19  1:35                                   ` [Devel] " Zheng, Lv
2017-04-17 23:46               ` Zheng, Lv
2017-04-17 23:46                 ` [Devel] " Zheng, Lv
2017-04-17 23:43             ` Zheng, Lv
2017-04-17 23:43               ` [Devel] " Zheng, Lv
2017-04-17 19:35           ` Moore, Robert
2017-04-17 19:35             ` [Devel] " Moore, Robert
2017-04-17 23:37         ` Zheng, Lv [this message]
2017-04-17 23:37           ` Zheng, Lv

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1AE640813FDE7649BE1B193DEA596E886CE93CE7@SHSMSX101.ccr.corp.intel.com \
    --to=lv.zheng@intel.com \
    --cc=devel@acpica.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=rafael.j.wysocki@intel.com \
    --cc=robert.moore@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.