Re: [PATCH v4 5/5] mm: add tracepoints for zone lock

From: Steven Rostedt

Date: Fri Feb 27 2026 - 14:51:10 EST


On Fri, 27 Feb 2026 16:00:27 +0000
Dmitry Ilvokhin <d@xxxxxxxxxxxx> wrote:

> static inline void zone_lock_init(struct zone *zone)
> {
> @@ -12,26 +59,41 @@ static inline void zone_lock_init(struct zone *zone)
>
> #define zone_lock_irqsave(zone, flags) \
> do { \
> + bool success = true; \
> + \
> + __zone_lock_trace_start_locking(zone); \
> spin_lock_irqsave(&(zone)->_lock, flags); \
> + __zone_lock_trace_acquire_returned(zone, success); \

Why the "success" variable and not just:

__zone_lock_trace_acquire_returned(zone, true);

?


> } while (0)
>
> #define zone_trylock_irqsave(zone, flags) \
> ({ \
> - spin_trylock_irqsave(&(zone)->_lock, flags); \
> + bool success; \
> + \
> + __zone_lock_trace_start_locking(zone); \
> + success = spin_trylock_irqsave(&(zone)->_lock, flags); \
> + __zone_lock_trace_acquire_returned(zone, success); \
> + success; \
> })
>
> static inline void zone_unlock_irqrestore(struct zone *zone, unsigned long flags)
> {
> + __zone_lock_trace_released(zone);
> spin_unlock_irqrestore(&zone->_lock, flags);
> }
>
> static inline void zone_lock_irq(struct zone *zone)
> {
> + bool success = true;
> +
> + __zone_lock_trace_start_locking(zone);
> spin_lock_irq(&zone->_lock);
> + __zone_lock_trace_acquire_returned(zone, success);

Same here.

> }
>
> static inline void zone_unlock_irq(struct zone *zone)
> {
> + __zone_lock_trace_released(zone);
> spin_unlock_irq(&zone->_lock);
> }
>

-- Steve