Changes in / [d800676:18ea270]
- Location:
- libcfa/src/concurrency
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/io.cfa
rd800676 r18ea270 295 295 // make sure the target hasn't stopped existing since last time 296 296 HELP: if(target < ctxs_count) { 297 // calculate it's age and how young it could be before we give up on helping297 // calculate it's age and how young it could be before we give ip on helping 298 298 const __readyQ_avg_t cutoff = calc_cutoff(ctsc, ctx->cq.id, ctxs_count, io.data, io.tscs, __shard_factor.io, false); 299 299 const __readyQ_avg_t age = moving_average(ctsc, io.tscs[target].t.tv, io.tscs[target].t.ma, false); -
libcfa/src/concurrency/io/call.cfa.in
rd800676 r18ea270 89 89 #if defined(CFA_HAVE_PREADV2) 90 90 struct iovec; 91 extern ssize_t preadv2 (int fd, const struct iovec * 91 extern ssize_t preadv2 (int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags); 92 92 #endif 93 93 #if defined(CFA_HAVE_PWRITEV2) 94 94 struct iovec; 95 extern ssize_t pwritev2(int fd, const struct iovec * 95 extern ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags); 96 96 #endif 97 97 … … 108 108 struct msghdr; 109 109 struct sockaddr; 110 extern ssize_t sendmsg(int sockfd, const struct msghdr * 111 extern ssize_t recvmsg(int sockfd, struct msghdr * 112 extern ssize_t send(int sockfd, const void * 113 extern ssize_t recv(int sockfd, void * 110 extern ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags); 111 extern ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags); 112 extern ssize_t send(int sockfd, const void *buf, size_t len, int flags); 113 extern ssize_t recv(int sockfd, void *buf, size_t len, int flags); 114 114 115 115 extern int fallocate(int fd, int mode, off_t offset, off_t len); 116 116 extern int posix_fadvise(int fd, off_t offset, off_t len, int advice); 117 extern int madvise(void * 118 119 extern int openat(int dirfd, const char * 117 extern int madvise(void *addr, size_t length, int advice); 118 119 extern int openat(int dirfd, const char *pathname, int flags, mode_t mode); 120 120 extern int close(int fd); 121 121 122 extern ssize_t read (int fd, void * 122 extern ssize_t read (int fd, void *buf, size_t count); 123 123 124 124 struct epoll_event; 125 extern int epoll_ctl(int epfd, int op, int fd, struct epoll_event * 126 127 extern ssize_t splice(int fd_in, __off64_t * off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags);125 extern int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event); 126 127 extern ssize_t splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags); 128 128 extern ssize_t tee(int fd_in, int fd_out, size_t len, unsigned int flags); 129 129 } … … 224 224 calls = [ 225 225 # CFA_HAVE_IORING_OP_READV 226 Call('READV', 'ssize_t preadv2(int fd, const struct iovec * 226 Call('READV', 'ssize_t preadv2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags)', { 227 227 'fd' : 'fd', 228 'addr': '(typeof(sqe->addr))iov', 228 'off' : 'offset', 229 'addr': '(uintptr_t)iov', 229 230 'len' : 'iovcnt', 230 'off' : 'offset',231 'rw_flags' : 'flags'232 231 }, define = 'CFA_HAVE_PREADV2'), 233 232 # CFA_HAVE_IORING_OP_WRITEV 234 Call('WRITEV', 'ssize_t pwritev2(int fd, const struct iovec * 233 Call('WRITEV', 'ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt, off_t offset, int flags)', { 235 234 'fd' : 'fd', 236 'addr': '(typeof(sqe->addr))iov',237 'len' : 'iovcnt',238 235 'off' : 'offset', 239 'rw_flags' : 'flags' 236 'addr': '(uintptr_t)iov', 237 'len' : 'iovcnt' 240 238 }, define = 'CFA_HAVE_PWRITEV2'), 241 239 # CFA_HAVE_IORING_OP_FSYNC … … 244 242 }), 245 243 # CFA_HAVE_IORING_OP_EPOLL_CTL 246 Call('EPOLL_CTL', 'int epoll_ctl(int epfd, int op, int fd, struct epoll_event * 244 Call('EPOLL_CTL', 'int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)', { 247 245 'fd': 'epfd', 246 'addr': 'fd', 248 247 'len': 'op', 249 'addr': 'fd', 250 'off': '(typeof(sqe->off))event' 248 'off': '(uintptr_t)event' 251 249 }), 252 250 # CFA_HAVE_IORING_OP_SYNC_FILE_RANGE … … 258 256 }), 259 257 # CFA_HAVE_IORING_OP_SENDMSG 260 Call('SENDMSG', 'ssize_t sendmsg(int sockfd, const struct msghdr * 261 'fd': 'sockfd', 262 'addr': '( typeof(sqe->addr))(struct msghdr *)msg',258 Call('SENDMSG', 'ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags)', { 259 'fd': 'sockfd', 260 'addr': '(uintptr_t)(struct msghdr *)msg', 263 261 'len': '1', 264 262 'msg_flags': 'flags' 265 263 }), 266 264 # CFA_HAVE_IORING_OP_RECVMSG 267 Call('RECVMSG', 'ssize_t recvmsg(int sockfd, struct msghdr * 268 'fd': 'sockfd', 269 'addr': '( typeof(sqe->addr))(struct msghdr *)msg',265 Call('RECVMSG', 'ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags)', { 266 'fd': 'sockfd', 267 'addr': '(uintptr_t)(struct msghdr *)msg', 270 268 'len': '1', 271 269 'msg_flags': 'flags' 272 270 }), 273 271 # CFA_HAVE_IORING_OP_SEND 274 Call('SEND', 'ssize_t send(int sockfd, const void * 275 'fd': 'sockfd', 276 'addr': '( typeof(sqe->addr))buf',272 Call('SEND', 'ssize_t send(int sockfd, const void *buf, size_t len, int flags)', { 273 'fd': 'sockfd', 274 'addr': '(uintptr_t)buf', 277 275 'len': 'len', 278 276 'msg_flags': 'flags' 279 277 }), 280 278 # CFA_HAVE_IORING_OP_RECV 281 Call('RECV', 'ssize_t recv(int sockfd, void * 282 'fd': 'sockfd', 283 'addr': '( typeof(sqe->addr))buf',279 Call('RECV', 'ssize_t recv(int sockfd, void *buf, size_t len, int flags)', { 280 'fd': 'sockfd', 281 'addr': '(uintptr_t)buf', 284 282 'len': 'len', 285 283 'msg_flags': 'flags' … … 288 286 Call('ACCEPT', 'int accept4(int sockfd, __SOCKADDR_ARG addr, socklen_t * restrict addrlen, int flags)', { 289 287 'fd': 'sockfd', 290 'addr': '( typeof(sqe->addr))&addr',291 'addr2': '( typeof(sqe->addr2))addrlen',288 'addr': '(uintptr_t)&addr', 289 'addr2': '(uintptr_t)addrlen', 292 290 'accept_flags': 'flags' 293 291 }), … … 295 293 Call('CONNECT', 'int connect(int sockfd, __CONST_SOCKADDR_ARG addr, socklen_t addrlen)', { 296 294 'fd': 'sockfd', 297 'addr': '( typeof(sqe->addr))&addr',295 'addr': '(uintptr_t)&addr', 298 296 'off': 'addrlen' 299 297 }), … … 301 299 Call('FALLOCATE', 'int fallocate(int fd, int mode, off_t offset, off_t len)', { 302 300 'fd': 'fd', 301 'addr': '(uintptr_t)len', 303 302 'len': 'mode', 304 'off': 'offset', 305 'addr': 'len' 303 'off': 'offset' 306 304 }), 307 305 # CFA_HAVE_IORING_OP_FADVISE … … 313 311 }), 314 312 # CFA_HAVE_IORING_OP_MADVISE 315 Call('MADVISE', 'int madvise(void * 316 'addr': '( typeof(sqe->addr))addr',313 Call('MADVISE', 'int madvise(void *addr, size_t length, int advice)', { 314 'addr': '(uintptr_t)addr', 317 315 'len': 'length', 318 316 'fadvise_advice': 'advice' 319 317 }), 320 318 # CFA_HAVE_IORING_OP_OPENAT 321 Call('OPENAT', 'int openat(int dirfd, const char * 319 Call('OPENAT', 'int openat(int dirfd, const char *pathname, int flags, mode_t mode)', { 322 320 'fd': 'dirfd', 323 'addr': '( typeof(sqe->addr))pathname',324 ' open_flags': 'flags;',325 ' len': 'mode'321 'addr': '(uintptr_t)pathname', 322 'len': 'mode', 323 'open_flags': 'flags;' 326 324 }), 327 325 # CFA_HAVE_IORING_OP_OPENAT2 328 Call('OPENAT2', 'int openat2(int dirfd, const char * 326 Call('OPENAT2', 'int openat2(int dirfd, const char *pathname, struct open_how * how, size_t size)', { 329 327 'fd': 'dirfd', 330 'addr': ' (typeof(sqe->addr))pathname',331 ' off': '(typeof(sqe->off))how',332 ' len': 'sizeof(*how)'328 'addr': 'pathname', 329 'len': 'sizeof(*how)', 330 'off': '(uintptr_t)how', 333 331 }, define = 'CFA_HAVE_OPENAT2'), 334 332 # CFA_HAVE_IORING_OP_CLOSE … … 337 335 }), 338 336 # CFA_HAVE_IORING_OP_STATX 339 Call('STATX', 'int statx(int dirfd, const char * pathname, int flags, unsigned int mask, struct statx *statxbuf)', {337 Call('STATX', 'int statx(int dirfd, const char *pathname, int flags, unsigned int mask, struct statx *statxbuf)', { 340 338 'fd': 'dirfd', 341 ' addr': '(typeof(sqe->addr))pathname',342 ' statx_flags': 'flags',339 'off': '(uintptr_t)statxbuf', 340 'addr': 'pathname', 343 341 'len': 'mask', 344 ' off': '(typeof(sqe->off))statxbuf'342 'statx_flags': 'flags' 345 343 }, define = 'CFA_HAVE_STATX'), 346 344 # CFA_HAVE_IORING_OP_READ 347 345 Call('READ', 'ssize_t read(int fd, void * buf, size_t count)', { 348 346 'fd': 'fd', 349 'addr': '( typeof(sqe->addr))buf',347 'addr': '(uintptr_t)buf', 350 348 'len': 'count' 351 349 }), … … 353 351 Call('WRITE', 'ssize_t write(int fd, void * buf, size_t count)', { 354 352 'fd': 'fd', 355 'addr': '( typeof(sqe->addr))buf',353 'addr': '(uintptr_t)buf', 356 354 'len': 'count' 357 355 }), 358 356 # CFA_HAVE_IORING_OP_SPLICE 359 Call('SPLICE', 'ssize_t splice(int fd_in, __off64_t * off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags)', {357 Call('SPLICE', 'ssize_t splice(int fd_in, __off64_t *off_in, int fd_out, __off64_t *off_out, size_t len, unsigned int flags)', { 360 358 'splice_fd_in': 'fd_in', 361 'splice_off_in': 'off_in ? ( typeof(sqe->splice_off_in))*off_in : (typeof(sqe->splice_off_in))-1',359 'splice_off_in': 'off_in ? (__u64)*off_in : (__u64)-1', 362 360 'fd': 'fd_out', 363 'off': 'off_out ? ( typeof(sqe->off))*off_out : (typeof(sqe->off))-1',361 'off': 'off_out ? (__u64)*off_out : (__u64)-1', 364 362 'len': 'len', 365 363 'splice_flags': 'flags'
Note:
See TracChangeset
for help on using the changeset viewer.