[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 3/6] intc/slavio_intctl: implement InterruptS
From: |
Artyom Tarasenko |
Subject: |
Re: [Qemu-devel] [PATCH v2 3/6] intc/slavio_intctl: implement InterruptStatsProvider interface |
Date: |
Wed, 28 Sep 2016 10:35:06 +0200 |
On Tue, Sep 27, 2016 at 8:39 PM, Hervé Poussineau <address@hidden> wrote:
> Le 27/09/2016 à 16:53, Artyom Tarasenko a écrit :
>>
>> Are slavio_pic_info and slavio_irq_info still used after this patch?
>
>
> After this patch, yes.
> However, slavio_pic_info/slavio_irq_info (and
> sun4m_hmp_info_pic/sun4m_hmp_info_irq) will be removed in patch 5/6.
>
Oh. The 5/6 somehow didn't make it to my inbox, so I missed it.
Acked-by: Artyom Tarasenko <address@hidden>
>
>
>>
>> On Mon, Sep 26, 2016 at 10:23 PM, Hervé Poussineau <address@hidden>
>> wrote:
>>>
>>> Signed-off-by: Hervé Poussineau <address@hidden>
>>> ---
>>> hw/intc/slavio_intctl.c | 35 +++++++++++++++++++++++++++++++++++
>>> 1 file changed, 35 insertions(+)
>>>
>>> diff --git a/hw/intc/slavio_intctl.c b/hw/intc/slavio_intctl.c
>>> index e82e893..a9acb64 100644
>>> --- a/hw/intc/slavio_intctl.c
>>> +++ b/hw/intc/slavio_intctl.c
>>> @@ -26,6 +26,7 @@
>>> #include "hw/sparc/sun4m.h"
>>> #include "monitor/monitor.h"
>>> #include "hw/sysbus.h"
>>> +#include "hw/intc/intc.h"
>>> #include "trace.h"
>>>
>>> //#define DEBUG_IRQ_COUNT
>>> @@ -418,6 +419,31 @@ static void slavio_intctl_reset(DeviceState *d)
>>> slavio_check_interrupts(s, 0);
>>> }
>>>
>>> +#ifdef DEBUG_IRQ_COUNT
>>> +static bool slavio_intctl_get_statistics(InterruptStatsProvider *obj,
>>> + uint64_t **irq_counts,
>>> + unsigned int *nb_irqs)
>>> +{
>>> + SLAVIO_INTCTLState *s = SLAVIO_INTCTL(obj);
>>> + *irq_counts = s->irq_count;
>>> + *nb_irqs = ARRAY_SIZE(s->irq_count);
>>> + return true;
>>> +}
>>> +#endif
>>> +
>>> +static void slavio_intctl_print_info(InterruptStatsProvider *obj,
>>> Monitor *mon)
>>> +{
>>> + SLAVIO_INTCTLState *s = SLAVIO_INTCTL(obj);
>>> + int i;
>>> +
>>> + for (i = 0; i < MAX_CPUS; i++) {
>>> + monitor_printf(mon, "per-cpu %d: pending 0x%08x\n", i,
>>> + s->slaves[i].intreg_pending);
>>> + }
>>> + monitor_printf(mon, "master: pending 0x%08x, disabled 0x%08x\n",
>>> + s->intregm_pending, s->intregm_disabled);
>>> +}
>>> +
>>> static void slavio_intctl_init(Object *obj)
>>> {
>>> DeviceState *dev = DEVICE(obj);
>>> @@ -449,9 +475,14 @@ static void slavio_intctl_init(Object *obj)
>>> static void slavio_intctl_class_init(ObjectClass *klass, void *data)
>>> {
>>> DeviceClass *dc = DEVICE_CLASS(klass);
>>> + InterruptStatsProviderClass *ic =
>>> INTERRUPT_STATS_PROVIDER_CLASS(klass);
>>>
>>> dc->reset = slavio_intctl_reset;
>>> dc->vmsd = &vmstate_intctl;
>>> +#ifdef DEBUG_IRQ_COUNT
>>> + ic->get_statistics = slavio_intctl_get_statistics;
>>> +#endif
>>> + ic->print_info = slavio_intctl_print_info;
>>> }
>>>
>>> static const TypeInfo slavio_intctl_info = {
>>> @@ -460,6 +491,10 @@ static const TypeInfo slavio_intctl_info = {
>>> .instance_size = sizeof(SLAVIO_INTCTLState),
>>> .instance_init = slavio_intctl_init,
>>> .class_init = slavio_intctl_class_init,
>>> + .interfaces = (InterfaceInfo[]) {
>>> + { TYPE_INTERRUPT_STATS_PROVIDER },
>>> + { }
>>> + },
>>> };
>>>
>>> static void slavio_intctl_register_types(void)
>>> --
>>> 2.1.4
>>>
>>>
>>
>>
>>
>
--
Regards,
Artyom Tarasenko
SPARC and PPC PReP under qemu blog: http://tyom.blogspot.com/search/label/qemu
- Re: [Qemu-devel] [PATCH v2 2/6] intc/i8259: implement InterruptStatsProvider interface, (continued)
[Qemu-devel] [PATCH v2 5/6] intc: make HMP 'info irq' and 'info pic' commands use InterruptStatsProvider interface, Hervé Poussineau, 2016/09/26
[Qemu-devel] [PATCH v2 1/6] intc: add an interface to gather statistics/informations on interrupt controllers, Hervé Poussineau, 2016/09/26
[Qemu-devel] [PATCH v2 6/6] intc: make HMP 'info irq' and 'info pic' commands available on all targets, Hervé Poussineau, 2016/09/26
[Qemu-devel] [PATCH v2 3/6] intc/slavio_intctl: implement InterruptStatsProvider interface, Hervé Poussineau, 2016/09/26
Re: [Qemu-devel] [PATCH v2 0/6] intc: change 'info irq' and 'info pic' to be target-agnostic, David Gibson, 2016/09/27