Print this page
OS-3561 lxbrand emulation library should execute on alternate stack
OS-3558 lxbrand add support for full in-kernel syscall handling
OS-3545 lx_syscall_regs should not walk stack
OS-3868 many LTP testcases now hang
OS-3901 lxbrand lx_recvmsg fails to translate control messages when 64-bit
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>
Reviewed by: Bryan Cantrill <bryan@joyent.com>
OS-2844 lx brand should support 64-bit user-land
OS-3280 need a way to specify the root of a native system in the lx brand
OS-3279 lx brand should allow delegated datasets
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/mdb/common/modules/libc/libc.c
          +++ new/usr/src/cmd/mdb/common/modules/libc/libc.c
↓ open down ↓ 127 lines elided ↑ open up ↑
 128  128          mdb_printf("  flags    = 0x%lx <%b>\n", uc.uc_flags,
 129  129              (uint_t)uc.uc_flags, uc_flags_bits);
 130  130          mdb_printf("  link     = 0x%p\n", uc.uc_link);
 131  131          mdb_printf("  sigmask  = 0x%08x 0x%08x 0x%08x 0x%08x\n",
 132  132              uc.uc_sigmask.__sigbits[0], uc.uc_sigmask.__sigbits[1],
 133  133              uc.uc_sigmask.__sigbits[2], uc.uc_sigmask.__sigbits[3]);
 134  134          mdb_printf("  stack    = sp 0x%p size 0x%lx flags %s\n",
 135  135              uc.uc_stack.ss_sp, uc.uc_stack.ss_size, stack_flags(&uc.uc_stack));
 136  136          mdb_printf("  mcontext = 0x%p\n",
 137  137              addr + OFFSETOF(ucontext_t, uc_mcontext));
      138 +        mdb_printf("  brand    = 0x%p 0x%p 0x%p\n",
      139 +            uc.uc_brand_data[0], uc.uc_brand_data[1], uc.uc_brand_data[2]);
 138  140  
 139  141          return (DCMD_OK);
 140  142  }
 141  143  
 142  144  /*ARGSUSED*/
 143  145  static int
 144  146  d_sigjmp_buf(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv)
 145  147  {
 146  148  #if defined(__sparc)
 147  149          struct {
↓ open down ↓ 691 lines elided ↑ open up ↑
 839  841              uberdata.hash_size,
 840  842              uberdata.hash_mask);
 841  843  
 842  844          HD("ulwp_one              all_lwps              all_zombies");
 843  845          mdb_printf(OFFSTR "%s %s %s\n",
 844  846              OFFSET(ulwp_one),
 845  847              prt_addr(uberdata.ulwp_one, 1),
 846  848              prt_addr(uberdata.all_lwps, 1),
 847  849              prt_addr(uberdata.all_zombies, 0));
 848  850  
 849      -        HD("nthreads   nzombies   ndaemons   pid        sigacthandler");
 850      -        mdb_printf(OFFSTR "%-10d %-10d %-10d %-10d %s\n",
      851 +        HD("nthreads   nzombies   ndaemons   pid");
      852 +        mdb_printf(OFFSTR "%-10d %-10d %-10d %-10d\n",
 851  853              OFFSET(nthreads),
 852  854              uberdata.nthreads,
 853  855              uberdata.nzombies,
 854  856              uberdata.ndaemons,
 855      -            (int)uberdata.pid,
 856      -            prt_addr((void *)uberdata.sigacthandler, 0));
      857 +            (int)uberdata.pid);
 857  858  
      859 +        HD("sigacthandler         setctxt");
      860 +        mdb_printf(OFFSTR "%s %s\n",
      861 +            OFFSET(sigacthandler),
      862 +            prt_addr((void *)uberdata.sigacthandler, 1),
      863 +            prt_addr((void *)uberdata.setctxt, 1));
      864 +
 858  865          HD("lwp_stacks            lwp_laststack         nfreestack stk_cache");
 859  866          mdb_printf(OFFSTR "%s %s %-10d %d\n",
 860  867              OFFSET(lwp_stacks),
 861  868              prt_addr(uberdata.lwp_stacks, 1),
 862  869              prt_addr(uberdata.lwp_laststack, 1),
 863  870              uberdata.nfreestack,
 864  871              uberdata.thread_stack_cache);
 865  872  
 866  873          HD("ulwp_freelist         ulwp_lastfree         ulwp_replace_free");
 867  874          mdb_printf(OFFSTR "%s %s %s\n",
↓ open down ↓ 1 lines elided ↑ open up ↑
 869  876              prt_addr(uberdata.ulwp_freelist, 1),
 870  877              prt_addr(uberdata.ulwp_lastfree, 1),
 871  878              prt_addr(uberdata.ulwp_replace_free, 0));
 872  879  
 873  880          HD("ulwp_replace_last     atforklist");
 874  881          mdb_printf(OFFSTR "%s %s\n",
 875  882              OFFSET(ulwp_replace_last),
 876  883              prt_addr(uberdata.ulwp_replace_last, 1),
 877  884              prt_addr(uberdata.atforklist, 0));
 878  885  
 879      -        HD("robustlocks           robustlist            progname");
 880      -        mdb_printf(OFFSTR "%s %s %s\n",
      886 +        HD("robustlocks           robustlist");
      887 +        mdb_printf(OFFSTR "%s %s\n",
 881  888              OFFSET(robustlocks),
 882  889              prt_addr(uberdata.robustlocks, 1),
 883      -            prt_addr(uberdata.robustlist, 1),
 884      -            prt_addr(uberdata.progname, 0));
      890 +            prt_addr(uberdata.robustlist, 1));
 885  891  
      892 +        HD("progname              ub_broot");
      893 +        mdb_printf(OFFSTR "%s %s\n",
      894 +            OFFSET(progname),
      895 +            prt_addr(uberdata.progname, 1),
      896 +            prt_addr(uberdata.ub_broot, 1));
      897 +
 886  898          HD("tdb_bootstrap         tdb_sync_addr_hash    tdb_'count tdb_'fail");
 887  899          mdb_printf(OFFSTR "%s %s %-10d %d\n",
 888  900              OFFSET(tdb_bootstrap),
 889  901              prt_addr(uberdata.tdb_bootstrap, 1),
 890  902              prt_addr(uberdata.tdb.tdb_sync_addr_hash, 1),
 891  903              uberdata.tdb.tdb_register_count,
 892  904              uberdata.tdb.tdb_hash_alloc_failed);
 893  905  
 894  906          HD("tdb_sync_addr_free    tdb_sync_addr_last    tdb_sync_alloc");
 895  907          mdb_printf(OFFSTR "%s %s %ld\n",
↓ open down ↓ 285 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX