240 发简信
IP属地:浙江
  • mac 10.13.6
    #
    # A fatal error has been detected by the Java Runtime Environment:
    #
    # SIGILL (0x4) at pc=0x000000011014b598, pid=1181, tid=8451
    #
    # JRE version: OpenJDK Runtime Environment (9.0) (slowdebug build 9-internal+0-adhoc.huanghaoxing.openjdk)
    # Java VM: OpenJDK 64-Bit Server VM (slowdebug 9-internal+0-adhoc.huanghaoxing.openjdk, mixed mode, tiered, compressed oops, serial gc, bsd-amd64)
    # Problematic frame:
    # V [libjvm.dylib+0xd4b598] PerfData::~PerfData()+0x8
    #
    # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
    #
    # An error report file with more information is saved as:
    # /Users/huanghaoxing/source/openjdk/make/hs_err_pid1181.log
    #
    # If you would like to submit a bug report, please visit:
    # http://bugreport.java.com/bugreport/crash.jsp
    #

    mac 10.13.x编译openjdk8

    由于 mac high sierra 系统有较大的变动,所以专门写一篇用mac high sierra 来编译 openjdk8 的博客. 准备阶段 mac 系统版本 10...

  • @wenj1997 还有3G内存就不管了?

    操作系统实验:Lab2 物理内存管理

    清华大学操作系统Lab2实验报告课程主页:http://os.cs.tsinghua.edu.cn/oscourse/OS2018spring实验指导书:https://ch...

  • page_init 为什么只用到实际物理内存的0-KMEMSIZE(0X38000000) , 这个内存不到1G,1G-4G用到哪里了

    static void
    page_init(void) {
    struct e820map *memmap = (struct e820map *)(0x8000 + KERNBASE);
    uint64_t maxpa = 0;

    cprintf("e820map:\n");
    int i;
    for (i = 0; i < memmap->nr_map; i ++) {
    uint64_t begin = memmap->map[i].addr, end = begin + memmap->map[i].size;
    cprintf(" memory: %08llx, [%08llx, %08llx], type = %d.\n",
    memmap->map[i].size, begin, end - 1, memmap->map[i].type);
    if (memmap->map[i].type == E820_ARM) {
    if (maxpa < end && begin < KMEMSIZE) {
    maxpa = end;
    }
    }
    }
    if (maxpa > KMEMSIZE) {
    maxpa = KMEMSIZE;
    }

    extern char end[];

    npage = maxpa / PGSIZE;
    pages = (struct Page *)ROUNDUP((void *)end, PGSIZE);

    for (i = 0; i < npage; i ++) {
    SetPageReserved(pages + i);
    }

    uintptr_t freemem = PADDR((uintptr_t)pages + sizeof(struct Page) * npage);

    for (i = 0; i < memmap->nr_map; i ++) {
    uint64_t begin = memmap->map[i].addr, end = begin + memmap->map[i].size;
    if (memmap->map[i].type == E820_ARM) {
    if (begin < freemem) {
    begin = freemem;
    }
    if (end > KMEMSIZE) {
    end = KMEMSIZE;
    }
    if (begin < end) {
    begin = ROUNDUP(begin, PGSIZE);
    end = ROUNDDOWN(end, PGSIZE);
    if (begin < end) {
    init_memmap(pa2page(begin), (end - begin) / PGSIZE);
    }
    }
    }
    }
    }

    操作系统实验:Lab2 物理内存管理

    清华大学操作系统Lab2实验报告课程主页:http://os.cs.tsinghua.edu.cn/oscourse/OS2018spring实验指导书:https://ch...

  • 120
    最详细的JVM&GC讲解

    这篇文章是我之前翻阅了不少的书籍以及从网络上收集的一些资料的整理,因此不免有一些不准确的地方,同时不同JDK版本的差异也比较大。 不过文中一些JVM参数示例都是实际项目里调优...