(self, queue_type, ring, gart, rptr, wptr, eop_buffer=None, cwsr_buffer=None, ctl_stack_size=0, ctx_save_restore_size=0,
xcc_id=0, idx=0)
| 873 | 'gfx_target_version': {90403: 90402}.get(gfxver, gfxver)} |
| 874 | |
| 875 | def create_queue(self, queue_type, ring, gart, rptr, wptr, eop_buffer=None, cwsr_buffer=None, ctl_stack_size=0, ctx_save_restore_size=0, |
| 876 | xcc_id=0, idx=0): |
| 877 | assert cwsr_buffer is None, "no cwsr buffer for am" |
| 878 | |
| 879 | rcvr_params: tuple |
| 880 | if queue_type == kfd.KFD_IOC_QUEUE_TYPE_SDMA: |
| 881 | doorbell_index = self.dev_impl.sdma.setup_ring(*(rcvr_params:=(ring.va_addr, ring.size, gart.va_addr+rptr, gart.va_addr+wptr, idx))) |
| 882 | else: |
| 883 | doorbell_index = self.dev_impl.gfx.setup_ring(*(rcvr_params:=(ring.va_addr, ring.size, gart.va_addr+rptr, gart.va_addr+wptr, |
| 884 | eop_buffer.va_addr, eop_buffer.size, is_aql:=(queue_type==kfd.KFD_IOC_QUEUE_TYPE_COMPUTE_AQL), is_aql))) |
| 885 | |
| 886 | return AMDQueueDesc(ring=ring.cpu_view().view(fmt='I'), doorbell=self.dev_impl.doorbell64.view(doorbell_index * 8, 8, fmt='Q'), put_value=0, |
| 887 | read_ptr=gart.cpu_view().view(offset=rptr, size=8, fmt='Q'), write_ptr=gart.cpu_view().view(offset=wptr, size=8, fmt='Q'), params=rcvr_params) |
| 888 | |
| 889 | def _collect_interrupts(self, reset=False, drain_only=False): |
| 890 | devs:list[AMDDevice] = [d for pg in HCQCompiled.peer_groups.values() for d in pg if isinstance(d, AMDDevice) and d.is_am()] |
nothing calls this directly
no test coverage detected