Lines Matching refs:hfi_instance
115 struct hfi_instance { struct
153 struct hfi_instance *hfi_instance; member
159 static struct hfi_instance *hfi_instances;
168 static void get_hfi_caps(struct hfi_instance *hfi_instance, in get_hfi_caps() argument
173 raw_spin_lock_irq(&hfi_instance->table_lock); in get_hfi_caps()
174 for_each_cpu(cpu, hfi_instance->cpus) { in get_hfi_caps()
179 caps = hfi_instance->data + index * hfi_features.cpu_stride; in get_hfi_caps()
191 raw_spin_unlock_irq(&hfi_instance->table_lock); in get_hfi_caps()
197 static void update_capabilities(struct hfi_instance *hfi_instance) in update_capabilities() argument
205 cpu_count = cpumask_weight(hfi_instance->cpus); in update_capabilities()
215 get_hfi_caps(hfi_instance, cpu_caps); in update_capabilities()
241 struct hfi_instance *hfi_instance; in hfi_update_work_fn() local
243 hfi_instance = container_of(to_delayed_work(work), struct hfi_instance, in hfi_update_work_fn()
246 update_capabilities(hfi_instance); in hfi_update_work_fn()
251 struct hfi_instance *hfi_instance; in intel_hfi_process_event() local
268 hfi_instance = info->hfi_instance; in intel_hfi_process_event()
269 if (unlikely(!hfi_instance)) { in intel_hfi_process_event()
280 if (!raw_spin_trylock(&hfi_instance->event_lock)) in intel_hfi_process_event()
286 raw_spin_unlock(&hfi_instance->event_lock); in intel_hfi_process_event()
295 new_timestamp = *(u64 *)hfi_instance->hw_table; in intel_hfi_process_event()
296 if (*hfi_instance->timestamp == new_timestamp) { in intel_hfi_process_event()
298 raw_spin_unlock(&hfi_instance->event_lock); in intel_hfi_process_event()
302 raw_spin_lock(&hfi_instance->table_lock); in intel_hfi_process_event()
308 memcpy(hfi_instance->local_table, hfi_instance->hw_table, in intel_hfi_process_event()
317 raw_spin_unlock(&hfi_instance->table_lock); in intel_hfi_process_event()
318 raw_spin_unlock(&hfi_instance->event_lock); in intel_hfi_process_event()
320 queue_delayed_work(hfi_updates_wq, &hfi_instance->update_work, in intel_hfi_process_event()
340 static void init_hfi_instance(struct hfi_instance *hfi_instance) in init_hfi_instance() argument
343 hfi_instance->hdr = hfi_instance->local_table + in init_hfi_instance()
344 sizeof(*hfi_instance->timestamp); in init_hfi_instance()
347 hfi_instance->data = hfi_instance->hdr + hfi_features.hdr_size; in init_hfi_instance()
365 struct hfi_instance *hfi_instance; in intel_hfi_online() local
381 hfi_instance = info->hfi_instance; in intel_hfi_online()
382 if (!hfi_instance) { in intel_hfi_online()
386 hfi_instance = &hfi_instances[die_id]; in intel_hfi_online()
387 info->hfi_instance = hfi_instance; in intel_hfi_online()
398 if (hfi_instance->hdr) { in intel_hfi_online()
399 cpumask_set_cpu(cpu, hfi_instance->cpus); in intel_hfi_online()
407 hfi_instance->hw_table = alloc_pages_exact(hfi_features.nr_table_pages, in intel_hfi_online()
409 if (!hfi_instance->hw_table) in intel_hfi_online()
412 hw_table_pa = virt_to_phys(hfi_instance->hw_table); in intel_hfi_online()
418 hfi_instance->local_table = kzalloc(hfi_features.nr_table_pages << PAGE_SHIFT, in intel_hfi_online()
420 if (!hfi_instance->local_table) in intel_hfi_online()
433 init_hfi_instance(hfi_instance); in intel_hfi_online()
435 INIT_DELAYED_WORK(&hfi_instance->update_work, hfi_update_work_fn); in intel_hfi_online()
436 raw_spin_lock_init(&hfi_instance->table_lock); in intel_hfi_online()
437 raw_spin_lock_init(&hfi_instance->event_lock); in intel_hfi_online()
439 cpumask_set_cpu(cpu, hfi_instance->cpus); in intel_hfi_online()
454 free_pages_exact(hfi_instance->hw_table, hfi_features.nr_table_pages); in intel_hfi_online()
471 struct hfi_instance *hfi_instance; in intel_hfi_offline() local
478 hfi_instance = info->hfi_instance; in intel_hfi_offline()
479 if (!hfi_instance) in intel_hfi_offline()
482 if (!hfi_instance->hdr) in intel_hfi_offline()
486 cpumask_clear_cpu(cpu, hfi_instance->cpus); in intel_hfi_offline()
537 struct hfi_instance *hfi_instance; in intel_hfi_init() local
557 hfi_instance = &hfi_instances[i]; in intel_hfi_init()
558 if (!zalloc_cpumask_var(&hfi_instance->cpus, GFP_KERNEL)) in intel_hfi_init()
570 hfi_instance = &hfi_instances[j]; in intel_hfi_init()
571 free_cpumask_var(hfi_instance->cpus); in intel_hfi_init()