Sponsored Content
Full Discussion: Very Expensive Running Shoes
The Lounge What is on Your Mind? Very Expensive Running Shoes Post 302886517 by Neo on Saturday 1st of February 2014 08:59:33 AM
Old 02-01-2014
Haha.. only the size 11s are so expensive!
 

2 More Discussions You Might Find Interesting

1. Programming

Which is more expensive ?

I have the following code snippet's. Which one among these would be more expensive ? #1 for (int fd = 0; fd <= 1024; ++fd) close(fd); #2 for (int fd = 0; fd <= 1024; fd += 8) { close(fd); close(fd+1); close(fd+2);... (6 Replies)
Discussion started by: vino
6 Replies

2. Programming

calling pthread_self (on ubuntu), expensive?

Hi all, Is anyone aware of what operations are involved when a call to pthread_self() is made, obtaining the unique thread ID on a Ubuntu system (or even any Linux flavour)? Specifically, to retrieve the thread id, is there any locking required or atomic operations? I'm building an... (11 Replies)
Discussion started by: gorga
11 Replies
PERCPU(9)						   BSD Kernel Developer's Manual						 PERCPU(9)

NAME
percpu, percpu_alloc, percpu_free, percpu_getref, percpu_putref, percpu_foreach -- per-CPU storage allocator SYNOPSIS
#include <sys/percpu.h> typedef void (*percpu_callback_t)(void *, void *, struct cpu_info *); percpu_t * percpu_alloc(size_t size); void percpu_free(percpu_t *pc, size_t size); void * percpu_getref(percpu_t *pc); void percpu_putref(percpu_t *pc); void percpu_foreach(percpu_t *pc, percpu_callback_t cb, void *arg); DESCRIPTION
The machine-independent percpu interface provides per-CPU, CPU-local memory reservations to kernel subsystems. percpu_alloc(size) reserves on each CPU an independent memory region of size bytes that is local to that CPU, returning a handle (percpu_t) to those regions. A thread may subsequently ask for a pointer, p, to the region held by the percpu_t on the thread's current CPU. Until the thread relinquishes the pointer, or voluntarily sleeps, the thread may read or write the region at p without causing interprocessor memory synchronization. FUNCTIONS
percpu_alloc(size) Call this in thread context to allocate size bytes of local storage on each CPU. The storage is initialized with zeroes. Treat this as an expensive operation. percpu_alloc() returns NULL on failure, and a handle for the per-CPU storage on success. percpu_free(pc, size) Call this in thread context to return to the system the per-CPU storage held by pc. size should match the size passed to percpu_alloc(). When percpu_free() returns, pc is undefined. Treat this as an expensive operation. percpu_getref(pc) Disable preemption and return a pointer to the storage held by pc on the local CPU. Use percpu_getref() in either thread or inter- rupt context. Follow each percpu_getref() call with a matching call to percpu_putref(). percpu_putref(pc) Indicate that the thread is finished with the pointer returned by the matching call to percpu_getref(). Re-enables preemption. percpu_foreach(pc, cb, arg) On each CPU, for ci the corresponding struct cpu_info * and p the CPU-local storage held by pc, run (*cb)(p, arg, ci). Call this in thread context. cb should be non-blocking and fast. Do not rely on cb to be run on the CPUs in any particular order. CODE REFERENCES
The percpu interface is implemented within the file sys/kern/subr_percpu.c. SEE ALSO
atomic_ops(3), kmem(9), pcq(9), pool_cache(9), xcall(9) HISTORY
The percpu interface first appeared in NetBSD 6.0. AUTHORS
YAMAMOTO Takashi <yamt@NetBSD.org> BSD
January 23, 2010 BSD
All times are GMT -4. The time now is 10:37 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy