Lines Matching defs:sfb

80 	struct sf_buffer sfb;
93 struct sf_buffer sfb; /* Sampling buffer */
170 return !!cpuhw->sfb.sdbt;
176 static void free_sampling_buffer(struct sf_buffer *sfb)
180 if (!sfb->sdbt)
183 sdbt = sfb->sdbt;
198 if (curr == sfb->sdbt)
212 (unsigned long)sfb->sdbt);
213 memset(sfb, 0, sizeof(*sfb));
245 static int realloc_sampling_buffer(struct sf_buffer *sfb,
251 if (!sfb->sdbt || !sfb->tail)
254 if (!is_link_entry(sfb->tail))
262 tail = sfb->tail;
267 if (sfb->sdbt != get_next_sdbt(tail)) {
271 (unsigned long)sfb->sdbt,
286 sfb->num_sdbt++;
306 sfb->num_sdbt--;
312 sfb->num_sdb++;
318 *tail = virt_to_phys(sfb->sdbt) + 1;
319 sfb->tail = tail;
323 sfb->num_sdbt, sfb->num_sdb);
338 static int alloc_sampling_buffer(struct sf_buffer *sfb, unsigned long num_sdb)
342 if (sfb->sdbt)
346 sfb->sdbt = (unsigned long *)get_zeroed_page(GFP_KERNEL);
347 if (!sfb->sdbt)
349 sfb->num_sdb = 0;
350 sfb->num_sdbt = 1;
355 sfb->tail = sfb->sdbt;
356 *sfb->tail = virt_to_phys((void *)sfb->sdbt) + 1;
359 rc = realloc_sampling_buffer(sfb, num_sdb, GFP_KERNEL);
361 free_sampling_buffer(sfb);
368 (unsigned long)sfb->sdbt, (unsigned long)*sfb->sdbt);
390 static unsigned long sfb_pending_allocs(struct sf_buffer *sfb,
393 if (!sfb->sdbt)
395 if (SFB_ALLOC_REG(hwc) > sfb->num_sdb)
396 return SFB_ALLOC_REG(hwc) - sfb->num_sdb;
400 static int sfb_has_pending_allocs(struct sf_buffer *sfb,
403 return sfb_pending_allocs(sfb, hwc) > 0;
422 if (cpuhw->sfb.sdbt)
423 free_sampling_buffer(&cpuhw->sfb);
482 return alloc_sampling_buffer(&cpuhw->sfb,
483 sfb_pending_allocs(&cpuhw->sfb, hwc));
530 ratio = DIV_ROUND_UP(100 * OVERFLOW_REG(hwc) * cpuhw->sfb.num_sdb,
534 num = compute_sfb_extent(ratio, cpuhw->sfb.num_sdb);
544 * @sfb: Sampling buffer structure (for local CPU)
554 static void extend_sampling_buffer(struct sf_buffer *sfb,
560 num = sfb_pending_allocs(sfb, hwc);
563 num_old = sfb->num_sdb;
575 rc = realloc_sampling_buffer(sfb, num, GFP_ATOMIC);
580 if (sfb_has_pending_allocs(sfb, hwc))
583 __func__, num, sfb->num_sdb - num_old,
584 sfb_pending_allocs(sfb, hwc));
1007 extend_sampling_buffer(&cpuhw->sfb, hwc);
1383 return i % aux->sfb.num_sdb;
1654 num_sdb = aux->sfb.num_sdb;
1683 "pages to overflow\n", aux->sfb.num_sdb);
1715 num_sdbt = aux->sfb.num_sdbt;
1754 struct sf_buffer *sfb;
1778 sfb = &aux->sfb;
1792 sfb->num_sdbt = 0;
1793 sfb->sdbt = (unsigned long *)get_zeroed_page(GFP_KERNEL);
1794 if (!sfb->sdbt)
1796 aux->sdbt_index[sfb->num_sdbt++] = (unsigned long)sfb->sdbt;
1797 tail = sfb->tail = sfb->sdbt;
1808 aux->sdbt_index[sfb->num_sdbt++] = (unsigned long)new;
1818 sfb->num_sdb = nr_pages;
1821 *tail = virt_to_phys(sfb->sdbt) + 1;
1822 sfb->tail = tail;
1829 aux->empty_mark = sfb->num_sdb - 1;
1832 sfb->num_sdbt, sfb->num_sdb);
1838 for (i = 0; i < sfb->num_sdbt; i++)
1944 if (!SAMPL_DIAG_MODE(&event->hw) && !cpuhw->sfb.sdbt)
1961 cpuhw->lsctl.tear = virt_to_phys(cpuhw->sfb.sdbt);
1962 cpuhw->lsctl.dear = *(unsigned long *)cpuhw->sfb.sdbt;
1963 TEAR_REG(&event->hw) = (unsigned long)cpuhw->sfb.sdbt;