[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[patch 28/30] xen/events: Reduce irq_info::spurious_cnt storage size
- To: LKML <linux-kernel@xxxxxxxxxxxxxxx>
- From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
- Date: Thu, 10 Dec 2020 20:26:04 +0100
- Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Marc Zyngier <maz@xxxxxxxxxx>, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>, Juergen Gross <jgross@xxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx, "James E.J. Bottomley" <James.Bottomley@xxxxxxxxxxxxxxxxxxxxx>, Helge Deller <deller@xxxxxx>, afzal mohammed <afzal.mohd.ma@xxxxxxxxx>, linux-parisc@xxxxxxxxxxxxxxx, Russell King <linux@xxxxxxxxxxxxxxx>, linux-arm-kernel@xxxxxxxxxxxxxxxxxxx, Mark Rutland <mark.rutland@xxxxxxx>, Catalin Marinas <catalin.marinas@xxxxxxx>, Will Deacon <will@xxxxxxxxxx>, Christian Borntraeger <borntraeger@xxxxxxxxxx>, Heiko Carstens <hca@xxxxxxxxxxxxx>, linux-s390@xxxxxxxxxxxxxxx, Jani Nikula <jani.nikula@xxxxxxxxxxxxxxx>, Joonas Lahtinen <joonas.lahtinen@xxxxxxxxxxxxxxx>, Rodrigo Vivi <rodrigo.vivi@xxxxxxxxx>, David Airlie <airlied@xxxxxxxx>, Daniel Vetter <daniel@xxxxxxxx>, Pankaj Bharadiya <pankaj.laxminarayan.bharadiya@xxxxxxxxx>, Chris Wilson <chris@xxxxxxxxxxxxxxxxxx>, Wambui Karuga <wambui.karugax@xxxxxxxxx>, intel-gfx@xxxxxxxxxxxxxxxxxxxxx, dri-devel@xxxxxxxxxxxxxxxxxxxxx, Tvrtko Ursulin <tvrtko.ursulin@xxxxxxxxxxxxxxx>, Linus Walleij <linus.walleij@xxxxxxxxxx>, linux-gpio@xxxxxxxxxxxxxxx, Lee Jones <lee.jones@xxxxxxxxxx>, Jon Mason <jdmason@xxxxxxxx>, Dave Jiang <dave.jiang@xxxxxxxxx>, Allen Hubbe <allenbh@xxxxxxxxx>, linux-ntb@xxxxxxxxxxxxxxxx, Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx>, Rob Herring <robh@xxxxxxxxxx>, Bjorn Helgaas <bhelgaas@xxxxxxxxxx>, Michal Simek <michal.simek@xxxxxxxxxx>, linux-pci@xxxxxxxxxxxxxxx, Karthikeyan Mitran <m.karthikeyan@xxxxxxxxxxxxxx>, Hou Zhiqiang <Zhiqiang.Hou@xxxxxxx>, Tariq Toukan <tariqt@xxxxxxxxxx>, "David S. Miller" <davem@xxxxxxxxxxxxx>, Jakub Kicinski <kuba@xxxxxxxxxx>, netdev@xxxxxxxxxxxxxxx, linux-rdma@xxxxxxxxxxxxxxx, Saeed Mahameed <saeedm@xxxxxxxxxx>, Leon Romanovsky <leon@xxxxxxxxxx>
- Delivery-date: Thu, 10 Dec 2020 19:51:04 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
To prepare for interrupt spreading reduce the storage size of
irq_info::spurious_cnt to u8 so the required flag for the spreading logic
will not increase the storage size.
Protect the usage site against overruns.
Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Cc: Juergen Gross <jgross@xxxxxxxx>
Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx
---
drivers/xen/events/events_base.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -95,7 +95,7 @@ struct irq_info {
struct list_head list;
struct list_head eoi_list;
short refcnt;
- short spurious_cnt;
+ u8 spurious_cnt;
enum xen_irq_type type; /* type */
unsigned irq;
evtchn_port_t evtchn; /* event channel */
@@ -528,8 +528,10 @@ static void xen_irq_lateeoi_locked(struc
return;
if (spurious) {
- if ((1 << info->spurious_cnt) < (HZ << 2))
- info->spurious_cnt++;
+ if ((1 << info->spurious_cnt) < (HZ << 2)) {
+ if (info->spurious_cnt != 0xFF)
+ info->spurious_cnt++;
+ }
if (info->spurious_cnt > 1) {
delay = 1 << (info->spurious_cnt - 2);
if (delay > HZ)
|