Re: [PATCH] parisc: Optimize switch_mm

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 26.07.2017 20:49, John David Anglin wrote:
> On 2017-07-26, at 2:02 PM, Helge Deller wrote:
> 
>> Instead I'd then suggest the patch below.
>> The if-clause in switch_mm_irqs_off() will then probably be optimized
>> away by the compiler.
>>
>> diff --git a/arch/parisc/include/asm/mmu_context.h b/arch/parisc/include/asm/mmu_context.h
>> index a812262..e4a6570 100644
>> --- a/arch/parisc/include/asm/mmu_context.h
>> +++ b/arch/parisc/include/asm/mmu_context.h
>> @@ -63,6 +63,9 @@ static inline void switch_mm(struct mm_struct *prev,
>> {
>> 	unsigned long flags;
>>
>> +	if (prev == next)
>> +		return;
>> +
>> 	local_irq_save(flags);
>> 	switch_mm_irqs_off(prev, next, tsk);
>> 	local_irq_restore(flags);
> 
> You are correct.  I missed the fact that switch_mm_irqs_off() is used by kernel/sched/core.c.
> 
> Maybe we should replace the "switch_mm_irqs_off(prev, next, tsk);" with the mtctl and load_context
> lines to ensure that the if-clause is optimized?

I think we should look at the generated assembly, and if it's not optimized away replace it with mtctl/load_context.

Helge
--
To unsubscribe from this list: send the line "unsubscribe linux-parisc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux SoC]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux