OpenVZ Forum


Home » Mailing lists » Devel » [PATCH 3/3] cpuid: switch to cpuid_on_cpu()
[PATCH 3/3] cpuid: switch to cpuid_on_cpu() [message #11671] Mon, 02 April 2007 11:33 Go to next message
Alexey Dobriyan is currently offline  Alexey Dobriyan
Messages: 195
Registered: August 2006
Senior Member
Now that cpuid_on_cpu() is in core, cpuid driver can be shrinked.

Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
---

arch/i386/kernel/cpuid.c | 41 +----------------------------------------
1 file changed, 1 insertion(+), 40 deletions(-)

--- a/arch/i386/kernel/cpuid.c
+++ b/arch/i386/kernel/cpuid.c
@@ -45,45 +45,6 @@ #include <asm/system.h>

static struct class *cpuid_class;

-#ifdef CONFIG_SMP
-
-struct cpuid_command {
- u32 reg;
- u32 *data;
-};
-
-static void cpuid_smp_cpuid(void *cmd_block)
-{
- struct cpuid_command *cmd = (struct cpuid_command *)cmd_block;
-
- cpuid(cmd->reg, &cmd->data[0], &cmd->data[1], &cmd->data[2],
- &cmd->data[3]);
-}
-
-static inline void do_cpuid(int cpu, u32 reg, u32 * data)
-{
- struct cpuid_command cmd;
-
- preempt_disable();
- if (cpu == smp_processor_id()) {
- cpuid(reg, &data[0], &data[1], &data[2], &data[3]);
- } else {
- cmd.reg = reg;
- cmd.data = data;
-
- smp_call_function_single(cpu, cpuid_smp_cpuid, &cmd, 1, 1);
- }
- preempt_enable();
-}
-#else /* ! CONFIG_SMP */
-
-static inline void do_cpuid(int cpu, u32 reg, u32 * data)
-{
- cpuid(reg, &data[0], &data[1], &data[2], &data[3]);
-}
-
-#endif /* ! CONFIG_SMP */
-
static loff_t cpuid_seek(struct file *file, loff_t offset, int orig)
{
loff_t ret;
@@ -119,7 +80,7 @@ static ssize_t cpuid_read(struct file *f
return -EINVAL; /* Invalid chunk size */

for (; count; count -= 16) {
- do_cpuid(cpu, reg, data);
+ cpuid_on_cpu(cpu, reg, &data[0], &data[1], &data[2], &data[3]);
if (copy_to_user(tmp, &data, 16))
return -EFAULT;
tmp += 16;
Re: [PATCH 3/3] cpuid: switch to cpuid_on_cpu() [message #11698 is a reply to message #11671] Mon, 02 April 2007 23:25 Go to previous message
hpa is currently offline  hpa
Messages: 38
Registered: January 2007
Member
Alexey Dobriyan wrote:
> Now that cpuid_on_cpu() is in core, cpuid driver can be shrinked.
>
> Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>

Hi Alexey,

This, and your other changes in this area does conflict with the work
that I've been doing on extending the usability of the CPUID and MSR
drivers (which is part of why this work has dragged out seemingly forever.)

I would really appreciate it if we could work together on this; there
needs to be new paravirtualization entry points for this. Consequently,
I just updated and uploaded a git tree with the current status. It
still needs porting to x86-64, however.

The current cpuid/msr work is at:

http://git.kernel.org/?p=linux/kernel/git/hpa/linux-2.6-cpui dmsr.git;a=summary

-hpa
Previous Topic: Re: Re: [PATCH 2/5] Fix race between rmmod and cat /proc/kallsyms
Next Topic: [PATCH 1/3] Introduce cpuid_on_cpu() and cpuid_eax_on_cpu()
Goto Forum:
  


Current Time: Fri Jul 04 15:35:30 GMT 2025

Total time taken to generate the page: 0.02192 seconds