void offline(char *name, void *p) { char buf[100]; if (madvise(p, PS, MADV_SOFT_OFFLINE) < 0) err(ndesc(buf, name, "offline")); corrupted++; }
void getQoreException(java::lang::Throwable *t, ExceptionSink &xsink) { //fprintf(stderr, "Unhandled Java exception %p:\n", t); //fprintf(stderr, "%s\n", str.getBuffer()); QoreStringNode *desc = getJavaExceptionMessage(t); // get stack trace JArray<java::lang::StackTraceElement *> *stack = t->getStackTrace(); java::lang::StackTraceElement **e = elements(stack); for (int i = 0; i < stack->length; ++i) { QoreString file, cls, meth; getQoreString(e[i]->getFileName(), file); getQoreString(e[i]->getClassName(), cls); getQoreString(e[i]->getMethodName(), meth); int line = e[i]->getLineNumber(); desc->sprintf("\n %s:%d: %s::%s() (%s)", file.getBuffer(), line > 0 ? line : 0, cls.getBuffer(), meth.getBuffer(), e[i]->isNativeMethod() ? "native" : "java"); } while ((t = t->getCause())) { desc->concat("\ncaused by: "); SimpleRefHolder<QoreStringNode> ndesc(getJavaExceptionMessage(t)); desc->concat(*ndesc, &xsink); } xsink.raiseException("JAVA-EXCEPTION", desc); }
void anonymous_hugepage(char *name, int flags) { char buf[100]; char *p = alloc_anonymous_hugepage(HPS, 1); printf("anonymous hugepage\n"); *(volatile int *)p = 1; offline(ndesc(buf, "anonymous hugepage", name), p); *(volatile int *)p = 1; free_anonymous_hugepage(p, HPS); }
void anonymous(char *name, int flags) { char buf[100]; char *p = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|flags, 0, 0); printf("anonymous\n"); *(volatile int *)p = 1; offline(ndesc(buf, "anonymous", name), p); *(volatile int *)p = 1; munmap(p, PS); }
void shm_hugepage(char *name, int flags) { int shmid = 0; char buf[100]; char *p = alloc_shm_hugepage(&shmid, HPS); if (!p) errmsg("failed in alloc_shm_hugepage\n"); printf("shm hugepage\n"); *(volatile int *)p = 1; offline(ndesc(buf, "shm hugepage", name), p); *(volatile int *)p = 1; free_shm_hugepage(shmid, p); }
void disk_backed(char *name, int flags) { char fn[100]; snprintf(fn, sizeof fn, TMPDIR "~test%u", getpid()); printf("shared, diskbacked\n"); int fd = open(fn, O_RDWR|O_CREAT|O_TRUNC, 0644); if (fd < 0) err("open tmpfile"); write(fd, empty, sizeof empty); char *p = checked_mmap(NULL, PS, PROT_READ|PROT_WRITE, MAP_SHARED|flags, fd, 0); *(volatile int *)p = 1; offline(ndesc(fn, "disk backed", name), p); munmap(p, PS); }
void filebacked_hugepage(char *name, int flags) { int fd; char path[100]; char fn[100]; snprintf(path, sizeof path, "%s/~test-hugepage%u", hugetlbfsdir, getpid()); char *p = alloc_filebacked_hugepage(path, HPS, 0, &fd); printf("file backed hugepage\n"); *(volatile int *)p = 1; offline(ndesc(fn, "file backed hugepage", name), p); *(volatile int *)p = 1; free_filebacked_hugepage(p, HPS, fd, path); }
void RODFRouteCont::addAllEndFollower() throw() { std::vector<RODFRouteDesc> newRoutes; for (std::vector<RODFRouteDesc>::iterator i=myRoutes.begin(); i!=myRoutes.end(); ++i) { RODFRouteDesc &desc = *i; ROEdge *last = *(desc.edges2Pass.end()-1); if (last->getNoFollowing()==0) { newRoutes.push_back(desc); continue; } for (unsigned int j=0; j<last->getNoFollowing(); ++j) { RODFRouteDesc ndesc(desc); ndesc.edges2Pass.push_back(last->getFollower(j)); setID(ndesc); newRoutes.push_back(ndesc); } } myRoutes = newRoutes; }