Lines Matching refs:hfi_instance
116 struct hfi_instance { struct
154 struct hfi_instance *hfi_instance; member
160 static struct hfi_instance *hfi_instances;
169 static void get_hfi_caps(struct hfi_instance *hfi_instance, in get_hfi_caps() argument
174 raw_spin_lock_irq(&hfi_instance->table_lock); in get_hfi_caps()
175 for_each_cpu(cpu, hfi_instance->cpus) { in get_hfi_caps()
180 caps = hfi_instance->data + index * hfi_features.cpu_stride; in get_hfi_caps()
192 raw_spin_unlock_irq(&hfi_instance->table_lock); in get_hfi_caps()
198 static void update_capabilities(struct hfi_instance *hfi_instance) in update_capabilities() argument
206 cpu_count = cpumask_weight(hfi_instance->cpus); in update_capabilities()
216 get_hfi_caps(hfi_instance, cpu_caps); in update_capabilities()
242 struct hfi_instance *hfi_instance; in hfi_update_work_fn() local
244 hfi_instance = container_of(to_delayed_work(work), struct hfi_instance, in hfi_update_work_fn()
247 update_capabilities(hfi_instance); in hfi_update_work_fn()
252 struct hfi_instance *hfi_instance; in intel_hfi_process_event() local
269 hfi_instance = info->hfi_instance; in intel_hfi_process_event()
270 if (unlikely(!hfi_instance)) { in intel_hfi_process_event()
281 if (!raw_spin_trylock(&hfi_instance->event_lock)) in intel_hfi_process_event()
285 new_timestamp = *(u64 *)hfi_instance->hw_table; in intel_hfi_process_event()
286 if (*hfi_instance->timestamp == new_timestamp) { in intel_hfi_process_event()
287 raw_spin_unlock(&hfi_instance->event_lock); in intel_hfi_process_event()
291 raw_spin_lock(&hfi_instance->table_lock); in intel_hfi_process_event()
297 memcpy(hfi_instance->local_table, hfi_instance->hw_table, in intel_hfi_process_event()
300 raw_spin_unlock(&hfi_instance->table_lock); in intel_hfi_process_event()
301 raw_spin_unlock(&hfi_instance->event_lock); in intel_hfi_process_event()
311 queue_delayed_work(hfi_updates_wq, &hfi_instance->update_work, in intel_hfi_process_event()
331 static void init_hfi_instance(struct hfi_instance *hfi_instance) in init_hfi_instance() argument
334 hfi_instance->hdr = hfi_instance->local_table + in init_hfi_instance()
335 sizeof(*hfi_instance->timestamp); in init_hfi_instance()
338 hfi_instance->data = hfi_instance->hdr + hfi_features.hdr_size; in init_hfi_instance()
356 struct hfi_instance *hfi_instance; in intel_hfi_online() local
372 hfi_instance = info->hfi_instance; in intel_hfi_online()
373 if (!hfi_instance) { in intel_hfi_online()
377 hfi_instance = &hfi_instances[die_id]; in intel_hfi_online()
378 info->hfi_instance = hfi_instance; in intel_hfi_online()
389 if (hfi_instance->hdr) { in intel_hfi_online()
390 cpumask_set_cpu(cpu, hfi_instance->cpus); in intel_hfi_online()
398 hfi_instance->hw_table = alloc_pages_exact(hfi_features.nr_table_pages, in intel_hfi_online()
400 if (!hfi_instance->hw_table) in intel_hfi_online()
403 hw_table_pa = virt_to_phys(hfi_instance->hw_table); in intel_hfi_online()
409 hfi_instance->local_table = kzalloc(hfi_features.nr_table_pages << PAGE_SHIFT, in intel_hfi_online()
411 if (!hfi_instance->local_table) in intel_hfi_online()
424 init_hfi_instance(hfi_instance); in intel_hfi_online()
426 INIT_DELAYED_WORK(&hfi_instance->update_work, hfi_update_work_fn); in intel_hfi_online()
427 raw_spin_lock_init(&hfi_instance->table_lock); in intel_hfi_online()
428 raw_spin_lock_init(&hfi_instance->event_lock); in intel_hfi_online()
430 cpumask_set_cpu(cpu, hfi_instance->cpus); in intel_hfi_online()
445 free_pages_exact(hfi_instance->hw_table, hfi_features.nr_table_pages); in intel_hfi_online()
462 struct hfi_instance *hfi_instance; in intel_hfi_offline() local
469 hfi_instance = info->hfi_instance; in intel_hfi_offline()
470 if (!hfi_instance) in intel_hfi_offline()
473 if (!hfi_instance->hdr) in intel_hfi_offline()
477 cpumask_clear_cpu(cpu, hfi_instance->cpus); in intel_hfi_offline()
528 struct hfi_instance *hfi_instance; in intel_hfi_init() local
548 hfi_instance = &hfi_instances[i]; in intel_hfi_init()
549 if (!zalloc_cpumask_var(&hfi_instance->cpus, GFP_KERNEL)) in intel_hfi_init()
561 hfi_instance = &hfi_instances[j]; in intel_hfi_init()
562 free_cpumask_var(hfi_instance->cpus); in intel_hfi_init()