[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [Xen-devel][PATCH] Change cpufreq_driver->get so that it can get other cpu's real physical freq
>From: Liu, Jinsong >Sent: Thursday, December 11, 2008 10:42 AM > >Change cpufreq_driver->get so that it can get other cpu's real >physical freq. > >Signed-off-by: Liu, Jinsong <jinsong.liu@xxxxxxxxx> @@ -174,7 +177,11 @@ static void drv_read(struct drv_cmd *cmd { cmd->val = 0; - do_drv_read(cmd); + /* to reduce IPI for the sake of performance */ + if (first_cpu(cmd->mask) == smp_processor_id()) + do_drv_read((void *)cmd); + else + on_selected_cpus( cmd->mask, do_drv_read, (void *)cmd, 0, 1); } Above is a bad change where you kicks multiple cpus to update same variable without any coordination. Also why can short path only be used with strict condition that current cpu must be first bit in mask? As long as current cpu is on mask, you can always read directly. @@ -205,7 +220,7 @@ static u32 get_cur_val(cpumask_t mask) return 0; } - cmd.mask = mask; + cmd.mask = cpumask_of_cpu(cpu); drv_read(&cmd); return cmd.val; Since do_drv_read can figure out which cpu to read from the mask, why do you need above limitation then? Thanks, Kevin _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |