Re: [RFC PATCH 07/14] khwasan: add tag related helper functions

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

 



On Mon, Mar 5, 2018 at 3:32 PM, Mark Rutland <mark.rutland@xxxxxxx> wrote:
> On Fri, Mar 02, 2018 at 08:44:26PM +0100, Andrey Konovalov wrote:
>> +static DEFINE_PER_CPU(u32, prng_state);
>> +
>> +void khwasan_init(void)
>> +{
>> +     int cpu;
>> +
>> +     for_each_possible_cpu(cpu) {
>> +             per_cpu(prng_state, cpu) = get_random_u32();
>> +     }
>> +     WRITE_ONCE(khwasan_enabled, 1);
>> +}
>> +
>> +static inline u8 khwasan_random_tag(void)
>> +{
>> +     u32 state = this_cpu_read(prng_state);
>> +
>> +     state = 1664525 * state + 1013904223;
>> +     this_cpu_write(prng_state, state);
>> +
>> +     return (u8)state;
>> +}
>
> Have you considered preemption here? Is the assumption that it happens
> sufficiently rarely that cross-contaminating the prng state isn't a
> problem?

Hi Mark!

Yes, I have. If a preemption happens between this_cpu_read and
this_cpu_write, the only side effect is that we'll give a few
allocated in different contexts objects the same tag. Sine KHWASAN is
meant to be used a probabilistic bug-detection debug feature, this
doesn't seem to have serious negative impact.

I'll add a comment about this though.

Thanks!

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux