Monday Mar 09, 2009

DTrace, Fortran & Sun Studio

Just read a really, really cool article on a newly evolving feature of the Sun Studio Fortran Compiler, a -dtrace option, which will allow you to automatically generate dtrace probes in your Fortran code. Must go play when I get an opportunity... this is wickedly cool.

Tuesday Oct 21, 2008

live upgrade & 'mod_hold_stub: Couldn't load stub module fs/dcfs'

I'm running a few builds behind Solaris Express at the moment, but decided to catch up earlier today, anyway I forgot to update my liveupgrade packages and hit a panic, so for your perusal (and oddly my enjoyment, I don't exactly look at panics that often these days and you sometimes forget just how powerful tools like mdb are for post mortem analysis)......
> ::status
debugging crash dump vmcore.5 (32-bit) from tiresias
operating system: 5.11 snv_98 (i86pc)
panic message: mod_hold_stub: Couldn't load stub module fs/dcfs
dump content: kernel pages only
> ::cpuinfo
  0 fec1e278  1f    0    0  35   no    no t-0    d18dc400 Xorg
  1 fec21d98  1b    1    0   0   no    no t-0    e2f11c00 luupgrade
> ::pgrep luupgrade | ::walk thread | ::findstack
stack pointer for thread e2f11c00: de6c4b7c
  de6c4b90 cmn_err+0x5a()
  de6c4bb4 mod_hold_stub+0x161()
  de6c4bf0 stubs_common_code+9()
  de6c4c44 fop_lookup+0xac()
  de6c4dfc lookuppnvp+0x313()
  de6c4e44 lookuppnat+0xec()
  de6c4ec4 lookupnameat+0x8b()
  de6c4f14 cstatat_getvp+0x149()
  de6c4f60 cstatat64+0x6b()
  de6c4f84 stat64+0x1c()
  de6c4fac sys_sysenter+0x106()
which points to the missing module listed in the status causing the error. Anyway a bit of digging around pointed to 6674815. The work around (and what you should always do anyway) is to update the live upgrade packages to the version of Solaris your upgrading to, from the bug workaround
# cd /So\*/To\*/Installers
# ./liveupgrade20 -nodisplalay -noconsole
After all of that, I'm happily upgrading and looking forward to playing around with the integrated version of powertop among other cute nv_100 toys. Speaking of power, you do know about the Sun Intelligent Power Monitoring Service don't you?

Monday Jul 28, 2008

Solaris Nevada 94 on Acer Aspire 5610

I've been a bit lax on my Nevada upgrades for my laptop recently, but I got a chance today to bring myself back up to date with snv_94. If your going to install this on an Acer Aspire 5610 you will run into a panic on boot due to some recent ACPI changes.

Straight off on boot you will get a panic similar to below, you will however need to boot in kmdb mode to see this properly (just add -k to your grub options).

ddi_create_minor_common+0x51(0, f97a5538, 2000, 400, f97a5720, 0)
ddi_create_minor_node+0x25(0, f97a5538 , 2000, 400, f97a5720, 0)

The work around is to add -B disable-acpi_drv=true to your grub options, my snv_94 grub entry reads

title snv_94
root (hd0,2,a)
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B disable-acpi_drv=true -B acpi-user-options=8
module$ /platform/i86pc/$ISADIR/boot_archive

There is a fix in place for snv_95, and the relevant bugs are

  • 6726425 - Dell XPS M1330 panic in 32 bit kernel.
  • 6727562 - acpi_drv: snv_94 panics on 3 different laptops.

Technorati Tag(s) : ,

Thursday Apr 10, 2008

xVM and the art of beer maintenance

We all know global warming is occurring, and from individual's to corporations we can all make a contribution to containing, and eventually reversing climate change, and save a bit of cash along the way as well. Seems like a win, win deal to me. But now the urgency has grown, a colleague of mine forwarded on an article about the price of beer. The price of beer I hear you ask? From the AP release

Jim Salinger, a climate scientist at New Zealand's National Institute of Water and Atmospheric Research, said climate change likely will cause a decline in the production of malting barley in parts of New Zealand and Australia. Malting barley is a key ingredient of beer.

"It will mean either there will be pubs without beer or the cost of beer will go up," Mr. Salinger told the Institute of Brewing and Distilling convention.

Now considering the fact, to borrow a quote the folks over on Goats, that

Beer is the salvation of all mans souls

this is a matter of some urgency for all of us in the technology industry to address. Luckily for us the most complete suite of technologies, services and solutions to address these problems is available from Sun.

Virtualization & Consolidation

There is virtualization from the management layer with Sun xVM Ops Center, to our hypervisor level offering xVM, based on the work of the openxVM community, to logical domains with LDoms on our award winning CoolThreads servers, to software level virtualization with Solaris Zones and desktop level virtualization with Sun xVM VirtualBox.

Using xVM and our range of x64 and Sun Blade Systems you can consolidate your existing Solaris, Windows and Linux environments into one environment. Personally I still have a soft spot for the Sun Fire x4600 M2, but given the choice I would go for the Sun Blade 6000 with Sun Blade x6220 Server Modules for x64 and x86 consolidation.

Why the Sun Blade 6000? Very simple, because I can use the same blade chassis with LDoms and the Sun Blade T6320 Server Module to consolidate my existing Sparc applications. Of course if you don't feel that xVM is the right choice for your Windows or Linux consolidation all of our x64 servers are VMWare certified, and you can get your support and services directly from Sun.

Sometimes however its not possible to migrate your ISV application to the latest version of Solaris, we are all aware of the application that was certified on with database X, jvm y and os z that no one wants to get recertified due to the costs, but you know that the old machine thats there is just not efficient any more, users would like better performance that can only come from a hardware upgrade, but the new hardware doesn't support the old OS - fear not as Solaris 8 Containers, building on the excellent work of the Zones and BrandZ communities over at OpenSolaris allows you to safely consolidate applications certified for Solaris 8 and Solaris 9 applications using Solaris 10 Containers, using any of our servers, from the most energy efficent servers on the market, Suns CoolThreads servers, to our high end offerings.

If your not sure if this is for you or uncertain if you want to undertake a migration, why not get one of our newly launched Sun Sparc Enterprise T5140 Servers on our Try & Buy program, contact our Professional Services group about our Enterprise Migration service, and see how much you could save on power, maintenance and support. Your boss will thank you for saving your business money and more importantly you will be helping to protect the global beer supply, which we all know is the real issue here :).

Wednesday Jul 25, 2007

compiling lame

I was compiling up lame earlier on this evening, and encountered the following error
brhist.c: In function `brhist_disp':
brhist.c:432: error: syntax error before '->' token
brhist.c:459: error: invalid type argument of `->'
brhist.c:465: error: invalid type argument of `->'

Anyway the good folks over at pkgsrc have a work around documented.

Monday Jul 23, 2007

Solaris Freeware Downloads

Solely because I've just spent fifteen minutes searching for the relevant link, a direct link for Freeware Downloads for the Solaris 10 Operating System, which of course work on Nevada as well.

Wednesday Jul 11, 2007

Flash 9 for Solaris

Its been in beta for a while, but Leon Sha has announced that Flash Player 9 for Solaris is now available. It should be integrated directly into Solaris Express relatively soon. And yes, before someone comments, I would like to see Acrobat on x86 as well, but if you haven't looked at it, evince is more than suffice, and is bundled as part of JDS.

Technorati Tag(s) :

Wednesday Mar 28, 2007

Building And Deploying OpenSolaris

The slides from my presentation on Building and Deploying OpenSolaris which I gave to the Irish OpenSolaris Users Group last night are now available. Thanks to Stephen Lau, Darren Moffat and Tim Foster for various contributions to the presentation.

Now some urls for the various bits and pieces I mentioned last night.

Technorati Tag(s) : ,

Monday Mar 26, 2007

Last minute voting....

Have you used your vote? If you are a core contributor for OpenSolaris you still have a few hours left to vote in the current open polls.
  • Board Election 2007
  • Ratify Constitution
Head over to for the details.
Technorati Tag(s) : ,

Wednesday Mar 07, 2007

Irish OpenSolaris Users Group @ Trinity, March 27th

The next Irish OpenSolaris Users Group meeting is being hosted at Trinity College on March 27th, courtesy of Trinty Netsoc. Tim is mailing out the details at the moment, but if your a bit impatient you can also take a look on the users group page. Or just read on for a slighty abridged version of the annoucement

Seventh Irish OpenSolaris User Group Meeting
Topic	An introduction to OpenSolaris
Date	Tuesday 27th Mar 2007
Time	6:30pm onwards
Location	Swift Theatre, Arts Block – TCD, courtesy of Netsoc
Directions	TCD

This month, we're going to hold a presentation on a topic that's probably a bit 
overdue, but better late than never.

An Introduction to OpenSolaris

Tim will be covering:

    \* Why OpenSolaris was started
    \* How the project is organised
    \* A short history of the project to date

And now the surprising part, yours truly will be presenting ..............

Fintan has volunteered to present:

    \* Building & installing your own OpenSolaris bits
    \* How you can start contributing

So, if you're interested in learning more about OpenSolaris, as well as 
how to get started hacking on the code, you should definitely come along.

We've also got a slot for our monthly run-down of OpenSolaris highlights 
since our last meeting in February, however, we don't yet have someone who 
can present this – if you're interested, please drop us a mail

Looking forward to seeing you there!

So as Tim said, pop along, and you never know, we may manage a beer afterwards. And I'll explain the difference between has and was to some folks (don't worry, I had planned to do a talk Tim ;) ).

Technorati Tag(s) : ,

Tuesday Dec 05, 2006

OpenSolaris Developer Conference 2007

The German Unix Users Group is organising the OpenSolaris Developer Conference 2007, in Berlin, from Feb 27th to March 2nd, and there is still time to respond to their call for papers. Should be an interesting conference. Having missed out on a trip to Berlin when I briefly wroked in Germany a few years back I think I may have found a perfect excuse to go visit ;).
Technorati Tag(s) : ,

Tuesday Oct 17, 2006

Jumpstart, multiple nics and ipv6

Quick tip. In most of the jumpstart examples that one sees, and certainly with the way we configure machines within our own lab, people generally specify one network interface and configure the rest later [1]. Jumpstart, using the network interface keyword can allow you to avoid this if you wish.

Currently we are doing some ipv6 work, and the system that we were setting up has two interfaces which will be used as ipv6 interfaces, while the primary interface is just ipv4. An example sysidcfg file to achieve this on installation is below

network_interface=iprb0 {primary 
network_interface=iprb1 {hostname=ipv6-1 
network_interface=e1000g0 {hostname=ipv6-2 
name_service=NIS { }
This results in the following network setup (this setup is on Nevada build 49).
# ifconfig -a
lo0: flags=2001000849 mtu 8232 index 1
        inet netmask ff000000
e1000g0: flags=1000843 mtu 1500 index 2
        inet netmask ffffff00 broadcast
        ether 0:2:b3:bb:c5:b2
iprb0: flags=1000843 mtu 1500 index 3
        inet netmask ffffff00 broadcast
        ether 0:3:47:30:ee:21
iprb1: flags=1000843 mtu 1500 index 4
        inet netmask ffffff00 broadcast
        ether 0:3:47:30:ee:22
lo0: flags=2002000849 mtu 8252 index 1
        inet6 ::1/128
e1000g0: flags=2000841 mtu 1500 index 2
        inet6 fe80::202:b3ff:febb:c5b2/10
        ether 0:2:b3:bb:c5:b2
iprb1: flags=2000841 mtu 1500 index 4
        inet6 fe80::203:47ff:fe30:ee22/10
        ether 0:3:47:30:ee:22

[1] We generally configure extra interfaces within our benchmarking framework, as different configs are required from the same machine.

Technorati Tag(s) : ,

Thursday Aug 17, 2006

Demangling C++ symbol names

Like quite a few of my colleagues I ordered the the two volume update of Solaris Internals pretty much as soon as they came out, and one of the most useful tips I have come across in reading of Solaris Performance and Tools is a program bundled with the Sun Studio Compilers, c++filt.

c++filt demangles C++ symbol names, (for postmortem debugging mdb has the ::dem dcmd [1]), and is mentioned with reference to java in several sections of the the book. Anyway an example will save you listening to me ramble on, so as an example lets look at an abbreviated pstack(1) of a java process on my desktop.

tiresias /home/fintanr $ ptree `pgrep java`
2287  /usr/bin/java -jar /usr/lib/patch/swupna.jar -wait
28414 /usr/jdk/instances/jdk1.5.0/jre/bin/java -client -Xbootclasspath/a:/usr/jdk/ins

tiresias /home/fintanr $ pstack 28414
... snip....
-----------------  lwp# 38 / thread# 38  --------------------
 fef38c27 lwp_cond_wait (830a4a8, 830a490, 0, 0)
 feab748c __1cCosHSolarisFEventEpark6M_v_ (830a468) + 4c
 feab6b36 __1cNObjectMonitorEwait6MxipnGThread__v_ (814c774, 0, 0, 1, 8652e80) + 346
 feab64b0 __1cSObjectSynchronizerEwait6FnGHandle_xpnGThread__v_ (82e55cc, 0, 0, 8652e80) + 70
 feab6204 JVM_MonitorWait (8652f40, ee37bbb0, 0, 0, ee37bb7c, 0) + 234
 f9207fcd ???????? (0, f9206269, 0, 0, ef8fe738, ee37bbb4)
 f9202a7b ???????? (ef8fe738, 3, ef8fe738, ee37bbdc, f35a9d08, ee37bc20)
 f9202a7b ???????? (0, 0, 0, ef8fe738, 0, efa090d0)
 f9202d81 ???????? (efa090d0, ee37bc68, fedb2000, 8652e80, 1, ee37bcfc)
 f9200152 ???????? (ee37bca8, ee37be4c, a, f342b5b0, f92072d0, ee37bda8)
 feaa86d7 __1cJJavaCallsLcall_helper6FpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread__v_ 
 (ee37be48, ee37bd40, ee37bda4, 8652e80, ee37bd34, feaa8528) + 187
 feaa8544 __1cCosUos_exception_wrapper6FpFpnJJavaValue_pnMmethodHandle_pnRJavaCallArguments_pnGThread_
     _v2468_v_ (feaa8550, ee37be48, ee37bd40, ee37bda4, 8652e80) + 14
 feaa8528 __1cJJavaCallsEcall6FpnJJavaValue_nMmethodHandle_pnRJavaCallArguments_pnGThread__v_
    (ee37be48, 82e55c8, ee37bda4, 8652e80) + 28
 feab5ede __1cJJavaCallsMcall_virtual6FpnJJavaValue_nLKlassHandle_nMsymbolHandle_4pnRJavaCallArguments
    _pnGThread__v_ (ee37be48, 82e55bc, fedd4e58, fedd4f28, ee37bda4, 8652e80) + be
 feab5e0d __1cJJavaCallsMcall_virtual6FpnJJavaValue_nGHandle_nLKlassHandle_nMsymbolHandle_5pnGThread__v
   _ (ee37be48, 82e55b8, 82e55bc, fedd4e58, fedd4f28, 8652e80) + 6d
 feab5d80 __1cMthread_entry6FpnKJavaThread_pnGThread__v_ (8652e80, 8652e80) + d0
 feab5c81 __1cKJavaThreadRthread_main_inner6M_v_ (8652e80) + 51
 feab5c25 __1cKJavaThreadDrun6M_v_ (8652e80) + 105
 fecc05e2 __1cG_start6Fpv_0_ (8652e80) + d2
 fef37bdd _thr_setup (fbe66000) + 51
 fef37e30 _lwp_start (fbe66000, 0, 0, 0, fbe66000, ee37bff8)

tiresias /home/fintanr $ pstack 28414 | ./c++filt
.... snip.....
----------------  lwp# 38 / thread# 38  --------------------
 fef38c27 lwp_cond_wait (830a4a8, 830a490, 0, 0)
 feab748c void os::Solaris::Event::park() (830a468) + 4c
 feab6b36 void ObjectMonitor::wait(long long,int,Thread\*) (814c774, 0, 0, 1, 8652e80) + 346
 feab64b0 void ObjectSynchronizer::wait(Handle,long long,Thread\*) (82e55cc, 0, 0, 8652e80) + 70
 feab6204 JVM_MonitorWait (8652f40, ee37bbb0, 0, 0, ee37bb7c, 0) + 234
 f9207fcd ???????? (0, f9206269, 0, 0, ef8fe738, ee37bbb4)
 f9202a7b ???????? (ef8fe738, 3, ef8fe738, ee37bbdc, f35a9d08, ee37bc20)
 f9202a7b ???????? (0, 0, 0, ef8fe738, 0, efa090d0)
 f9202d81 ???????? (efa090d0, ee37bc68, fedb2000, 8652e80, 1, ee37bcfc)
 f9200152 ???????? (ee37bca8, ee37be4c, a, f342b5b0, f92072d0, ee37bda8)
 feaa86d7 void JavaCalls::call_helper(JavaValue\*,methodHandle\*,JavaCallArguments\*,Thread\*) 
   (ee37be48, ee37bd40, ee37bda4, 8652e80, ee37bd34, feaa8528) + 187
 feaa8544 void os::os_exception_wrapper(void(\*)(JavaValue\*,methodHandle\*,JavaCallArguments\*,Thread\*),
    JavaValue\*,methodHandle\*,JavaCallArguments\*,Thread\*) (feaa8550, ee37be48, ee37bd40, ee37bda4,
    8652e80) + 14
 feaa8528 void JavaCalls::call(JavaValue\*,methodHandle,JavaCallArguments\*,Thread\*) (ee37be48,
    82e55c8, ee37bda4, 8652e80) + 28
 feab5ede void JavaCalls::call_virtual(JavaValue\*,KlassHandle,symbolHandle,symbolHandle,JavaCallArguments\*,
   Thread\*) (ee37be48, 82e55bc, fedd4e58, fedd4f28, ee37bda4, 8652e80) + be
 feab5e0d void JavaCalls::call_virtual(JavaValue\*,Handle,KlassHandle,symbolHandle,symbolHandle,Thread\*) 
    (ee37be48, 82e55b8, 82e55bc, fedd4e58, fedd4f28, 8652e80) + 6d
 feab5d80 void thread_entry(JavaThread\*,Thread\*) (8652e80, 8652e80) + d0
 feab5c81 void JavaThread::thread_main_inner() (8652e80) + 51
 feab5c25 void JavaThread::run() (8652e80) + 105
 fecc05e2 void\*_start(void\*) (8652e80) + d2
 fef37bdd _thr_setup (fbe66000) + 51
 fef37e30 _lwp_start (fbe66000, 0, 0, 0, fbe66000, ee37bff8)

Very handy if I do say so.

[1] mdb ::dem help
> ::help dem

  dem - demangle C++ symbol names

  ::dem name ...


  Target: kvm
  Module: mdb
  Interface Stability: Evolving

Tuesday Jul 04, 2006

3rd Irish OpenSolaris User Group Meeting

Subject: 3rd Irish OpenSolaris User Group Meeting
Date: Tue, 04 Jul 2006 12:08:00 +0100
From: Tim Foster 

Hi All,

We're going to hold our 3rd meeting in a few weeks time - on Tuesday
25th July. In general, I think it might be good to try to always do one
on the last Tuesday in every month in the future, which would make it
easier to schedule things.

Here are the details for the next meeting:

Topic   : DTrace
Date    : Tue 25th July, 19:00
Location: Sun Offices, East Point Business Park

This month's main topic will be DTrace. Sean McGrath, an engineer in the
Sun Ireland Performance Group will give us an introduction to the
Dynamic Tracing facility in OpenSolaris and will also be doing some live
demos for us.

If you're doing \*any\* application development on \*any\* UNIX-like
operating system, and that app can be compiled on OpenSolaris, then you
really should come along - DTrace is well worth a few hours of your time
(and it'll almost certainly pay back that time a thousand-fold once you
learn how to use it!)

Sean's asked that anyone who has applications which compile on
OpenSolaris (x86 if possible) that they bring them along, and we'll have
a look at any possible performance problems they might have: DTrace is
best demoed on applications the audience is familiar with, so now's your
chance - if a bit of software has been bugging you, and you're not sure
what's wrong, DTrace can help. Examples could be:

 \* a webserver with unexplained (performance) problems
 \* you want to see what xmms is reall doing ?
 \* how a shell script executes
 \* why does my terminal-emulator take so long to scroll
 (the list is endless)

We want your applications!

As well as that, I'll try to do a quick run-down of OpenSolaris-related
things that have happened since our last meeting.

[snip .... ]

Technorati Tag(s) : ,

Monday Jun 26, 2006

IE-OSUG @ ApacheCon Europe

ApacheCon Europe kicked off today, and conveniently for us its on in Dublin this year. Sean, Nicky, possibly Tim, (a guest appearance on returning from hisholidays) and I will be floating around at various times from Wednesday to Friday, wearing our Irish OpenSolaris Users Group caps (okay not literally in my case, baseball caps just don't suit) at the Sun booth.

If your attending feel free to call by for a general chat, or more detailed questions. We will have iso's of the various distros with us if you want to try the live cd's of Nextena, Belenix and SchilliX, or the latest release of Solaris Express.

Technorati Tag(s) : ,



« February 2017