[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC PATCH v3 09/18] xen/arm: ITS: Add virtual ITS commands support
On Mon, Jun 29, 2015 at 5:53 PM, Ian Campbell <ian.campbell@xxxxxxxxxx> wrote: > On Mon, 2015-06-22 at 17:31 +0530, vijay.kilari@xxxxxxxxx wrote: >> +static int vgic_its_process_mapvi(struct vcpu *v, struct vgic_its *vits, >> + its_cmd_block *virt_cmd) >> +{ >> + struct vitt entry; >> + struct vits_device *vdev; >> + uint8_t vcol_id, cmd; >> + uint32_t vid, dev_id, event; >> + >> + vcol_id = virt_cmd->mapvi.col; >> + vid = virt_cmd->mapvi.phy_id; >> + dev_id = its_decode_devid(v->domain, virt_cmd); > > If you used the "union its_cmd" I proposed earlier for the virt_cmd > argument then this would just be "virt_command->mapvi.devid". its_decode_devid() is used to get physical devid for a given virtual device id. I have to use virt_command->mapvi.devid. If vitt entries are made base on physical dev id then - This helps where in if interrupt is received we can extract physical dev id from the its_device structure held by irq_desc. With this physical device id we can search vitt entry to get collection/vcpu and vlpi information. However fake devices cannot have physical device id. We cannot search vitt entries. Esp INT command has only virtual dev id. So I think this approach is not viable. I propose: Manage vitt entries based on virtual dev id and manage domain specific RB-tree (which holds list of devices assigned to domain) with physical devid. Now on receiving interrupt, will search for RB-tree based on physical dev id and get virtual dev id. With virtual dev id search vitt entries to get vcpu/collection & vlpi info. Also for fake devices, we search vitt entries with vdevice id for INT command. Any suggestions? Regards Vijay _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |