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

Re: [Xen-devel] [PATCH 03 of 10] xenalyze: remove decode of unused events



On Thu, May 31, 2012 at 12:16 PM, David Vrabel <david.vrabel@xxxxxxxxxx> wrote:
> The PV_UPDATE_VA_MAPPING event is not present in xen-unstable, nor is
> it present in any of the 3.2, 3.3, 3.4 or 4.1 XenServer trees I looked
> at so I can only assume this was an event that never made it upstream.
>
> Remove the code as the event ID is now used for PV_HYPERCALL_V2.
>
> Similarly, some of the the HW_IRQ_* events are also not used anywhere
> I could find.

Certainly makes sense to remove these, but I think the
PV_UPDATE_VA_MAPPING at least is probably useful, if I can find the
patch for it.  (The HW_IRQ events were for tracking down that IOMMU
bug reported by SolarFlare last summer.)

I'll make two changesets which remove these individually, so it's easy
to revert if we decide to bring them back.

 -George

>
> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
> ---
>
> diff --git a/xenalyze.c b/xenalyze.c
> --- a/xenalyze.c
> +++ b/xenalyze.c
> @@ -1531,7 +1531,6 @@ enum {
>     PV_GDT_LDT_MAPPING_FAULT,
>     PV_PTWR_EMULATION,
>     PV_PTWR_EMULATION_PAE,
> -    PV_UPDATE_VA_MAPPING,
>     PV_MAX
>  };
>
> @@ -6514,44 +6513,6 @@ void pv_ptwr_emulation_process(struct re
>     }
>  }
>
> -void pv_update_va_mapping_process(struct record_info *ri, struct pv_data 
> *pv) {
> -    union pv_event pevt = { .event = ri->event };
> -    union {
> -        /* gpl2 is deprecated */
> -        struct {
> -            unsigned long long val;
> -            unsigned int va, flags;
> -        } x32;
> -        struct {
> -            unsigned long long val;
> -            unsigned long long va, flags;
> -        } x64;
> -    } *r = (typeof(r))ri->d;
> -    struct {
> -        unsigned long long val, va, flags;
> -    } e;
> -
> -    if ( pevt.x64 )
> -    {
> -        e.val = r->x64.val;
> -        e.va = r->x64.va;
> -        e.flags = r->x64.flags;
> -    }
> -    else
> -    {
> -        e.val = r->x32.val;
> -        e.va = r->x32.va;
> -        e.flags = r->x32.flags;
> -    }
> -
> -    if ( opt.dump_all )
> -    {
> -        printf(" %s update_va_mapping l1e %llx va %llx flags %llx\n",
> -               ri->dump_header,
> -               e.val, e.va, e.flags);
> -    }
> -}
> -
>  void pv_generic_process(struct record_info *ri, struct pv_data *pv) {
>     union pv_event pevt = { .event = ri->event };
>     if ( opt.dump_all ) {
> @@ -6638,9 +6599,6 @@ void pv_process(struct pcpu_info *p)
>     case PV_PTWR_EMULATION_PAE:
>         pv_ptwr_emulation_process(ri, pv);
>         break;
> -    case PV_UPDATE_VA_MAPPING:
> -        pv_update_va_mapping_process(ri, pv);
> -        break;
>     case PV_PAGE_FAULT:
>         //pv_pf_process(ri, pv);
>         //break;
> @@ -7893,149 +7851,6 @@ void irq_process(struct pcpu_info *p) {
>         }
>         break;
>     }
> -    case TRC_HW_IRQ_MSI_WRITE:
> -    {
> -        struct {
> -            unsigned address_lo, address_hi;
> -            unsigned data;
> -            unsigned irq:16, pos:16;
> -            uint8_t func, slot, bus, type;
> -            unsigned mask_base;
> -        } *r = (typeof(r))ri->d;
> -
> -        if ( opt.dump_all )
> -        {
> -            printf(" %s irq_msi_write irq %x t %x base %x addr %x %x data %x 
> pci %02x:%02x.%x %x\n",
> -                   ri->dump_header,
> -                   r->irq,
> -                   r->type,
> -                   r->mask_base,
> -                   r->address_hi, r->address_lo,
> -                   r->data,
> -                   r->bus, r->slot, r->func, r->pos);
> -        }
> -        break;
> -    }
> -    case TRC_HW_IRQ_IOMMU_AMD_IRE:
> -    {
> -        struct {
> -            uint16_t bdf, id;
> -            int offset;
> -            uint8_t dest_mode, dev_mode, vector, dest;
> -        } *r = (typeof(r))ri->d;
> -
> -        if ( opt.dump_all )
> -        {
> -            printf(" %s irq_iommu_ire bdf %x id %x offset %x dest_mode %x 
> dev_mode %x vec %x dest %x\n",
> -                   ri->dump_header,
> -                   r->bdf, r->id,
> -                   r->offset,
> -                   r->dest_mode, r->dev_mode,
> -                   r->vector, r->dest);
> -        }
> -        break;
> -    }
> -    case TRC_HW_IRQ_MAP_PIRQ_MSI:
> -    {
> -        struct {
> -            unsigned domain:16,
> -                pirq:16,
> -                irq:16,
> -                bus:16,
> -                devfn:16,
> -                entry_nr:16;
> -        } *r = (typeof(r))ri->d;
> -
> -        if ( r->irq < MAX_IRQ )
> -        {
> -            struct irq_desc *irq=irq_table+r->irq;
> -
> -            if ( irq->dev )
> -            {
> -                fprintf(warn, "Strange, irq %d already has dev 
> %02x:%x.%x!\n",
> -                        r->irq, irq->dev->bus,
> -                        irq->dev->devfn>>4,
> -                        irq->dev->devfn&3);
> -            }
> -            else
> -            {
> -                struct pci_dev *pdev = pdev_find(r->bus, r->devfn);
> -
> -                irq->dev=pdev;
> -                irq->type=IRQ_MSI;
> -            }
> -        }
> -
> -        if ( opt.dump_all )
> -        {
> -            printf(" %s irq_map_pirq_msi d%d pirq %x(%d) irq %x bus %x devfn 
> %x entry %x\n",
> -                   ri->dump_header,
> -                   r->domain,
> -                   r->pirq,
> -                   r->pirq,
> -                   r->irq,
> -                   r->bus,
> -                   r->devfn,
> -                   r->entry_nr);
> -        }
> -        break;
> -    }
> -    case TRC_HW_IRQ_MAP_PIRQ_GSI:
> -    {
> -        struct {
> -            unsigned domain, pirq, irq;
> -        } *r = (typeof(r))ri->d;
> -
> -        if ( opt.dump_all )
> -        {
> -            printf(" %s irq_map_pirq_gsi d%d pirq %x(%d) irq %x\n",
> -                   ri->dump_header,
> -                   r->domain,
> -                   r->pirq,
> -                   r->pirq,
> -                   r->irq);
> -        }
> -        break;
> -    }
> -    case TRC_HW_IRQ_MSI_SET_AFFINITY:
> -    {
> -        struct {
> -            unsigned irq, apic_id, vector;
> -        } *r = (typeof(r))ri->d;
> -
> -        if ( opt.dump_all )
> -        {
> -            printf(" %s irq_msi_set_affinity irq %x apicid %x vec %x\n",
> -                   ri->dump_header,
> -                   r->irq,
> -                   r->apic_id,
> -                   r->vector);
> -        }
> -        break;
> -    }
> -    case TRC_HW_IRQ_SET_DESC_AFFINITY:
> -    {
> -        struct {
> -            unsigned line:16, irq:16;
> -            char fname[24]; /* Extra 7 words; 6 words * 4 = 24 */
> -        } *r = (typeof(r))ri->d;
> -        char fname[25];
> -        int i;
> -
> -        for(i=0; i<24; i++)
> -            fname[i]=r->fname[i];
> -        fname[i]=0;
> -
> -        if ( opt.dump_all )
> -        {
> -            printf(" %s irq_set_desc_affinity irq %x %s:%d\n",
> -                   ri->dump_header,
> -                   r->irq,
> -                   fname,
> -                   r->line);
> -        }
> -        break;
> -    }
>     case TRC_HW_IRQ_CLEAR_VECTOR:
>     case TRC_HW_IRQ_MOVE_FINISH :
>     default:
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.