public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jean Delvare <khali@linux-fr.org>
To: "David Hubbard" <david.c.hubbard@gmail.com>
Cc: "Matthew Garrett" <mjg59@srcf.ucam.org>,
	"Pavel Machek" <pavel@ucw.cz>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	lm-sensors@lm-sensors.org, linux-acpi@vger.kernel.org,
	"Chuck Ebbert" <cebbert@redhat.com>,
	Rudolf@atrpms.net
Subject: Re: [lm-sensors] Could the k8temp driver be interfering with ACPI?
Date: Sun, 4 Mar 2007 11:54:40 +0100	[thread overview]
Message-ID: <20070304115440.b212d7ff.khali@linux-fr.org> (raw)
In-Reply-To: <4dfa50520703030747g3c887f5bxe25caefd1723c635@mail.gmail.com>

Hi David,

On Sat, 3 Mar 2007 08:47:21 -0700, David Hubbard wrote:
> > Is there anything preventing us from doing such a walk and pre-allocate
> > all the I/O ranges? I am not familiar with the ACPI code at all, would
> > you possibly propose a patch doing that?
> 
> Here's a random idea -- what do you think of it?
> 
> ACPI already allocates some I/O ranges, which was a surprise to me:
> 
> > My machine looks like this:
> >
> > 1000-107f : 0000:00:1f.0
> >  1000-1003 : ACPI PM1a_EVT_BLK
> >  1004-1005 : ACPI PM1a_CNT_BLK
> >  1008-100b : ACPI PM_TMR
> >  1010-1015 : ACPI CPU throttle
> >  1020-1020 : ACPI PM2_CNT_BLK
> >  1028-102b : ACPI GPE0_BLK
> >  102c-102f : ACPI GPE1_BLK
> 
> For I/O and memory that ACPI accesses and has not reserved, the AML
> interpreter could allocate at run-time.
> 
> I'm not sure how to implement exactly. For example, it would be bad to
> have a /proc/ioports that had a lot of single ports allocated, for
> example:
> 1000-107f : 0000:00:1f.0
>  1000-1000 : ACPI PM1a_EVT_BLK
>  1001-1001 : ACPI PM1a_EVT_BLK
>  1002-1002 : ACPI PM1a_EVT_BLK
>  1003-1003 : ACPI PM1a_EVT_BLK
> 
> Thus the AML interpreter would need to have some reasonable
> intelligence when allocating regions. Conflict resolution would also
> be more difficult, e.g. if a hwmon driver was loaded first and then
> acpi as a module, ACPI could not allocate the region. Maybe run-time
> allocating won't work.
> 
> And then, how would ACPI release a region after it has used it? The
> easiest method would be to never release anything used even once.

I've been thinking about it too, but I could convince myself quickly
that it would never work, so I didn't bother posting about it ;)

As you found out yourself, it isn't trivial to allocate the ports
dynamically. Either you'll end up with lots of 1-address ranges, or
you'll allocate more than is actually needed, or you'll need a
buddy-allocator like mechanism to merge contiguous ranges. This sounds
quite complex to get right. And very costly, too. I don't know the
exact algorithm to find out whether an I/O range is already allocated
or not, and by who, but having to do it for each port access from AML,
forever, sounds like a huge overhead.

On top of that, there is a risk that another driver already requested
the I/O range. And we do not want to prevent ACPI from accessing it!
OK, it would be cleaner that the current situation in a way, but it
could also have bad consequences as was underlined elsewhere in this
thread.

What we want is to grant access to the resources to at least ACPI (and
ACPI only if we can't do better), or if possible to both ACPI and
individual drivers but with some mechanism avoiding concurrent access
(be it a mutex or a port forwarder.)

-- 
Jean Delvare

  parent reply	other threads:[~2007-03-04 10:54 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-02-16 17:31 Could the k8temp driver be interfering with ACPI? Chuck Ebbert
2007-02-16 17:57 ` Len Brown
2007-02-16 18:14   ` Chuck Ebbert
2007-02-16 19:59 ` Andi Kleen
2007-02-16 19:31   ` Chuck Ebbert
2007-02-18 17:32     ` [lm-sensors] " Jean Delvare
2007-02-18 23:22       ` Andi Kleen
2007-02-17 10:49 ` Rudolf Marek
2007-02-17 18:14   ` Chuck Ebbert
2007-02-18 17:38     ` Jean Delvare
2007-02-20 15:18       ` Matthew Garrett
2007-02-20 15:33         ` Luca Tettamanti
2007-02-21 14:59           ` Jean Delvare
2007-02-21 15:07         ` Jean Delvare
2007-02-28 21:38       ` Pavel Machek
2007-03-01 14:26         ` Jean Delvare
2007-03-01 17:48           ` Dave Jones
2007-03-02 11:27             ` Jean Delvare
2007-03-02 11:31               ` Pavel Machek
2007-03-02 13:37                 ` Jean Delvare
2007-03-02 13:47                   ` Henrique de Moraes Holschuh
2007-03-02 13:57                   ` Pavel Machek
2007-03-03  6:44                     ` Jean Delvare
2007-03-02 11:40           ` Pavel Machek
2007-03-02 11:47             ` Matthew Garrett
2007-03-02 13:58               ` Pavel Machek
2007-03-02 21:00                 ` Jean Delvare
2007-03-02 21:22                   ` Henrique de Moraes Holschuh
2007-04-01 15:39                   ` Pavel Machek
2007-04-02 15:48                     ` Jean Delvare
2007-04-02 19:22                       ` Dave Jones
2007-04-03  5:49                         ` Jean Delvare
2007-04-02 20:55                       ` Moore, Robert
2007-04-03  7:21                         ` Jean Delvare
2007-04-04 21:35                           ` Moore, Robert
2007-03-02 14:10               ` [lm-sensors] " Jean Delvare
2007-03-02 14:18                 ` Matthew Garrett
2007-03-02 21:04                   ` Jean Delvare
2007-03-02 21:12                     ` Matthew Garrett
2007-03-03  9:53                       ` Jean Delvare
2007-03-03 15:47                         ` David Hubbard
2007-03-03 15:50                           ` Matthew Garrett
2007-03-03 17:08                             ` Rudolf Marek
2007-03-04 17:29                               ` Rudolf Marek
2007-03-05 21:16                                 ` Jean Delvare
2007-03-05 21:35                                   ` David Hubbard
2007-03-06 15:10                                     ` Jean Delvare
2007-03-04 10:54                           ` Jean Delvare [this message]
2007-03-05 22:25                         ` Pavel Machek
2007-03-06  7:55                           ` Benny Amorsen
2007-03-06 15:26                           ` Jean Delvare
2007-03-06 20:07                             ` Stefan Monnier
2007-03-06 21:20                             ` Pavel Machek
2007-03-06 21:25                               ` Moore, Robert
2007-03-18 19:36                         ` richardvoigt
2007-03-19  7:08                           ` Jean Delvare
2007-03-02 22:07                     ` Moore, Robert
2007-03-09  7:18                       ` Pavel Machek
2007-03-09 10:24                         ` Jean Delvare
2007-03-09 10:39                           ` Alexey Starikovskiy
2007-03-09 11:21                             ` Pavel Machek
2007-03-09 17:23                             ` Jean Delvare
2007-03-09 17:35                               ` Alexey Starikovskiy
2007-03-09 21:03                                 ` Moore, Robert
2007-03-09 20:56                         ` Moore, Robert
2007-03-02 14:22                 ` Pavel Machek
2007-03-02 14:03             ` Jean Delvare
2007-03-02 14:24               ` Pavel Machek
2007-03-02 14:57               ` Matthew Garrett
2007-03-02 21:41                 ` Jean Delvare
2007-03-02 21:46                   ` Matthew Garrett
2007-03-06 21:28                     ` Jean Delvare
2007-04-13 18:18               ` Bjorn Helgaas
2007-04-13 20:07                 ` Pavel Machek
2007-04-13 20:59                   ` Bjorn Helgaas
2007-04-15  9:41                     ` Jean Delvare
2007-04-15 20:31                       ` Bjorn Helgaas
2007-04-15 20:59                         ` Luca Tettamanti
2007-04-16  0:57                           ` Bjorn Helgaas
2007-04-16 21:14                             ` Luca Tettamanti
2007-04-16 22:28                               ` Bjorn Helgaas
2007-04-17 23:50                                 ` Luca Tettamanti
2007-04-22 16:55                                   ` Luca Tettamanti
2007-04-17 10:03                               ` Jean Delvare
2007-02-18 22:43     ` Rudolf Marek
2007-02-20 15:08       ` Chuck Ebbert
2007-02-20 19:11         ` Dave Jones
2007-02-21 16:17           ` Jean Delvare
2007-02-21 17:37             ` Dave Jones
2007-02-21 20:19               ` Dave Jones
2007-02-22 16:37                 ` Jean Delvare
2007-02-23  7:13                   ` Hans de Goede
2007-02-23  7:47                     ` Jean Delvare
2007-02-21 14:54         ` Jean Delvare
2007-02-21 16:03           ` Chuck Ebbert
2007-02-21 16:22             ` Jean Delvare
     [not found] <7PvLN-1cj-3@gated-at.bofh.it>
     [not found] ` <7TEGV-6Jy-39@gated-at.bofh.it>
     [not found]   ` <7TUBX-6TN-5@gated-at.bofh.it>
     [not found]     ` <7UeqX-4QO-17@gated-at.bofh.it>
     [not found]       ` <7UeqZ-4QO-27@gated-at.bofh.it>
     [not found]         ` <7UgM5-np-1@gated-at.bofh.it>
     [not found]           ` <7UgM8-np-11@gated-at.bofh.it>
     [not found]             ` <7UnaS-2xP-9@gated-at.bofh.it>
     [not found]               ` <7UnkC-2JB-9@gated-at.bofh.it>
     [not found]                 ` <7Uzcd-49u-3@gated-at.bofh.it>
     [not found]                   ` <7UEEN-4xi-3@gated-at.bofh.it>
2007-03-05 13:56                     ` Bodo Eggert
2007-03-06 15:19                       ` Jean Delvare
2007-03-06 20:40                         ` Bodo Eggert
2007-03-07  9:17                           ` Jean Delvare
2007-03-07  9:36                             ` Pavel Machek
2007-03-07 17:09                             ` Bodo Eggert

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=20070304115440.b212d7ff.khali@linux-fr.org \
    --to=khali@linux-fr.org \
    --cc=Rudolf@atrpms.net \
    --cc=cebbert@redhat.com \
    --cc=david.c.hubbard@gmail.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lm-sensors@lm-sensors.org \
    --cc=mjg59@srcf.ucam.org \
    --cc=pavel@ucw.cz \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox