Multi processor Solaris 2.6 and mutex locks

hi,
is anyone aware of any documented issues with Solaris 2.6 running
on dual-SPARC processors (multi-processor environment) where the
programs using "mutex locks" (multi-threaded applications), require
some special handling, in terms of compiling and linking, to some
special libraries.
as far as i remember, in some OS book, maybe Peterson's, it was said
that the mechanism for implementing mutex-locks on multi-processor
systems is to use low-level spin-locks. this brings down performance
on a single-processor system, making the processor doing busy-wait,
but this happens to be the only way of mutex-locking in a multi-processor
system. if this is so, then where is such behaviour documented in case
of Solaris 2.6.
i have had problems with my applications crashing (rathing hanging up)
in a vfork() on such a system, but same application works fine, with
100% reproducability, on a single-processor system.
thanks for any inputs or suggestions and/or information.
regards,
banibrata dutta

I am also facing similar problem. Application which written using Mulit-Threaded using Posix Mutexes. When i run on SINGLE processor manchine, i.e.
SunOS sund4 5.7 Generic_106541-11 sun4u sparc SUNW,Ultra-5_10
It works perfectly.
But when try to run on dual processor machine, i.e.
SunOS sund2 5.7 Generic_106541-11 sun4u sparc SUNW,Ultra-250
It is blocking in the one of mutexes.
Please inform us what is problem. Mr. B. Datta, you comes to know
any channel, please inform me also at [email protected]
Thanx & regards,
-venkat

Similar Messages

  • Controlling Multi-processor Solaris 8

    We have a Solaris 8 MP box.
    We want to be able to 'toggle" the use of one of the processors.
    That is, we want to PROGRAMATICALLY tell the OS to disable one processor and run as a single-processor machine. Then, later, tell it to enable that processor and resume running as a MP box.
    Is this possible?

    See the psradm(1M) command, and the p_online(2) system call.

  • Mutex locking issue on Solaris 10

    We are having a problem with mutex locking.
    On one scenario we are running our application
    On a v245 running Solaris 10 6/06 update 2 patch 118833-24
    On our 5120 we are running Solaris 10 8/07 update 4patch 137111-05.
    Our application creates several thousand simultaneous mutex inits (pthread_mutex_init). Approx 12 are locked at any one time. Our problem is after several min the application fails because the mutex destroy does not appear to destroy the mutex. This is true only on our 5120 but not on our v245. As a result our application runs fine on the v245 but fails quickly on the 5120.
    Do you have any knowledge of why this might be happening?
    Any help you can provide in this will be greatly appreciated.
    If this is not the right group to post this messages please let me know.
    Thanks!

    How many threads do you have performing these mutex operations? The 5120 probably runs a lot more concurrent threads than the v245 does, so it's likely you're running into a race condition that's only apparent when the number of concurrent threads is large enough.
    What kind of mutexes are they? Recursive, process-shared, "normal"? Where are they located? Dynamically-allocated heap memory, local stack variables, mmap()'d memory? If they're recursive or "normal" mutexes in heap memory, you've most likely got a race condition in your application, because the source code at opensolaris.org for pthread_mutex_destroy() is pretty much nothing but "memset( &mutex, 0, sizeof( mutex ) )" for normal mutexes. It's hard to imagine how that could fail.
    You can use the race-condition tools that are part of Sun Studio 12 or another memory-checking application such as Purify to find out where your error may be. Given the timing issues apparently involved, those are probably your best options. The overhead of tools such as watchmalloc or even the run-time memory checker in Sun Studio may be too much and mask your timing issues. Assuming that's what the root cause of your problem is.
    I didn't look at what's involved in destroying a process-shared mutex, though. That's a lot more complicated.
    On edit: How do you know that pthread_mutex_destroy() is not destroying the mutex?
    Edited by: AndrewHenle on Jun 16, 2009 3:46 PM

  • Is there any known issue about mutex lock used in JNI on Solaris 10?

    Dear Oracle,
    I'm facing a strange behavior when running a JNI application that use the mutex lock. The application hanged after running for a while on one of our Solaris 10 machines. After investigating the stack trace of the application, it shows that one of all the application's threads that access the JNI hold the mutex lock forever, and that cause the other threads cannot access the JNI. The same application works fine on other Solaris 10 machines.
    The mutex function I used as show below:
    mutex_lock(&mutex)
    The application hanged at this line:
    0xff2cc940 ___lwp_mutex_timedlock + 0x8
    The Kernel version is SunOS 5.10 Generic_142900-14
    Since this issue occurrs on only one Solaris 10 machine in our environment, we are wondering if there is any known issue regarding the mutex lock used in JNI on Solaris 10. We tried to search the Internet and the Java Bug database but found nothing related to this issue.
    Best regards,
    Krit K.

    876587 wrote:
    ... and that cause the other threads cannot access the JNI. The same application works fine on other Solaris 10 machines.
    Different environments mean just that. So something could be causing it outside java.
    Additionally if anything at all is different in the execution data, such as even a name having a different size, then it would change the execution path.
    Which would cause a problem in the JNI code to manifest itself on only one box. Probably isn't a pointer bug but all sorts of odd behavior can result from that.

  • Java multi-thread Applet and Multi-processor

    Hello,
    I have a JAVA applet which work fine on a mono-processeur machine and not fine at all on multi-processors.
    It use multi thread (for reading on socket) and some times, request are lost.
    Is that a matter of programming or a JVM bug ?
    This happens on Linux and Windows NT bi-processors.
    We hare using JAVA 1.3.0_02
    Thanks for your help
    [email protected]

    I have already have a look to javax.swing.SwingUtilities.invokeLater() but (I think) it don't work for my need.
    A graphic applet which create 2 threads : one for reading and one for writing on a socket.
    Request sent to the server are memorized in a vector, and once answer is received, the request is remove from vector and treated. Access to the list is protected by synchronize.
    Everything works fine one several plateforme (linux, windows 98/2000/NT, Solaris). The only problem is on multi-processor : request are lost !

  • NI instruments / Logic instruments and multi processor warning

    I am running an instance of FM8 and Massive and the rest of my patches are exs and evp88 , on a macbook with 2gb ram , the memory is less than 50% and mainstage has been great up untill today when i got the "mainstage does not support multi processor 's" warning and then the second time this warning came up mainstage force quitted . Anyone experienced this yet ?

    Ola Ramiro,
    como estas?
    I'm using Atmosphere on as a normal plug-in.
    However, there have been some mates that post about here in the forum.
    Try to shearch about it.
    If I have any news, I'll keep you post.
    adieus amigo,
    Jorge

  • Should I be able to see a priority change using a mutex lock   ?

    If I have a program which uses a mutex lock in solaris 9 which is set up to protect/priority ceiling of 5 and kick it off using priocntl with a priority of 11 and RT, I can look at top and see that it has priority 111. So my process is running real time. I then use a second xterm and wait till the program hits the lock portion of the code. If I do a priocntl -d pid, it is still priority 11. I know it is in the lock because there is a printf and a sleep of 20 seconds. Should I be able to see the priority go to 5? How can I prove the priority inheritance off the mutex lock is working in a test program, so that I know I am using it correctly? Thanks for any insight.

    I also tried it with a priority ceiling of 50, figured out that RT priorities worked the reverse of regular priority, the higher the priority number, the higher the priority. I still however am not able to prove the priority inheritance occured. Anybody got any thoughts on how to prove it is working properly.

  • IPC on multi-processor environment

    I have written a C program which uses IPC resource "message queue" and "shared memory" on a single processor SUN Sparc workstation (with
    Solaris 2.5.1 OS).
    I would like to know whether my program can function correctly if it runs on a multi-processor SUN platform (e.g. Sun HPC model 450 with more than 1 CPU installed).
    Does anyone have any experience on this?
    Best Regards,
    Annie

    Hi.
    The IPC features will work find in an MP environment. It is designed for processes which are normally protected from each other to be able to exchange data. You just have make sure that access to your message queue or especially shared memory is synchronised between multiple processes by using semaphores (see semget(2)).
    You could also look at using just one process but multithreading it.
    The multithreaded programming guide covers the issues.
    Have you expereienced a particular problem?
    Regards,
    Ralph
    SUN DTS

  • Multi-Processor Performance

    I would like to know what performance gains I might expect from moving our
    weblogic application server to a multi-processor machine. Will 2 processors
    handle twice server the load of the one processor machine?
    Platform: Solaris 2.6
    Weblogic Server: 4.5.1 SP7
    NativeIO enabled
    Weblogic Server is the only thing running on the machine.
    Other Questions:
    1. Is there anything that needs to be done(other than purchase another
    license) for the weblogic server to work on a multi-processor system?
    2. Will the weblogic server naturally take advantage both processors?
    3. Will performance gains be uniform or will certain features gain more
    from multiple processors?
    Any links or suggestions are appreciated.
    thanks,
    Jeremy

    Hi Jeremy -
    If you are interested in modeling this before implementing it to determine
    performance gains, you might want to check out our scalability assessment
    services description, see attached. We are a BEA Technology Alliance Partner
    that specializes in answering those specific performance questions, and have
    done that for a number of clients in the past few weeks.
    (See also eQASEsheet2.pdf) - this describes our capacity sizing tool that works
    particularly well for Weblogic.
    Todd
    jeremy wrote:
    I would like to know what performance gains I might expect from moving our
    weblogic application server to a multi-processor machine. Will 2 processors
    handle twice server the load of the one processor machine?
    Platform: Solaris 2.6
    Weblogic Server: 4.5.1 SP7
    NativeIO enabled
    Weblogic Server is the only thing running on the machine.
    Other Questions:
    1. Is there anything that needs to be done(other than purchase another
    license) for the weblogic server to work on a multi-processor system?
    2. Will the weblogic server naturally take advantage both processors?
    3. Will performance gains be uniform or will certain features gain more
    from multiple processors?
    Any links or suggestions are appreciated.
    thanks,
    Jeremy--
    Todd Wiseman
    Dir/Business Development
    eQASE LLC
    (303)790-4242 x130
    (303)790-2816
    www.eqase.com
    Java Performance & Scalability
    [eQASE WLS Consulting Offerings.pdf]
    [eQASEsheet2.pdf]

  • Monitor multi processor

    hey all..
    how i can monitor each processor in my multi processor machine which have solaris 8 ..
    and if i create thread by using java language why i not see it in the prosess list by use PS command..

    Regarding question 1: try the "mpstat" comand...
    $ mpstat 3
    CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
    0 177 7 145 149 35 781 44 104 50 0 462 15 11 13 61
    1 142 8 530 519 435 27 48 104 46 0 103 12 10 14 64
    CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
    0 8639 0 2906 700 589 923 72 291 222 0 7232 18 50 1 30
    1 8659 0 2237 439 315 994 75 290 236 0 7370 20 52 3 25
    CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
    0 8350 0 2641 685 578 853 69 273 198 0 10050 23 50 2 26
    1 8739 0 2353 491 313 1101 141 271 222 0 8423 21 51 1 27
    CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
    0 8991 0 2834 680 554 987 81 300 238 0 6952 19 51 0 30
    1 8825 0 2438 506 384 1013 80 293 237 0 7001 21 52 0 27

  • Multi Processor environments

    Just a quick question for ye, no detail really required at this time.
    Is it possible to run a multi threaded Java application in a multi processor environment, where the processors would share the work between them.
    I suppose basically what I am asking is does the JVM have the capabilities to run multiple threads across multiple processors.
    If the answer to this question is yes, how difficult is it to set up or is there any special requirements, or extensions required.
    Cheers

    In most current JVMs, the facilities of the OS to spread the execution across the system's CPU's is provided to the Java programmer quite transparently. Avoid 'green threads' and you are good as gold.
    On Solaris 7 and earlier, it gets tricky to convince the two-level kernel threading mechanism to really use all CPU's (or even more than one). The Sun JVM's for Solaris provide 'unsupported' but often suggested command line options to use 'bound threads' to solve this problem and Java 1.3.0 and 1.3.1 do a much better job. I've run WLS on 10-way 4500 systems and was able to consume about 70% of the 10 CPU's with productive work - principal limitation was our ability to apply load to the system.
    In Solaris 8, there is an alternate thread library that a process can choose to use (just put it in the front of the LD_LIBRARY_PATH). This causes that process to use a one-level (or flat) Solaris thread model which can improve performance (and will definitely increase processor utilization) on larger SMP systems.
    Chuck

  • Implementing "critical sections" using recursive mutex locks

    Greetings.
    I have chosen pthread mutexes for implementing critical sections in my ported Windows code. As you probably all know, mutexes do not by default support recursive locking and will deadlock if attempted. With Solaris 7 came support for recursive locking through the PTHREAD_MUTEX_RECURSIVE type of mutex. The problem I have encountered when using these recursive mutexes doesn't even involve recursive locking, yet only manifests itself when using the recursive type.
    To pin-point the problem, I have written a very simple application that creates 10 threads and pauses (via sleep()) for an amount of time sufficient for all threads to complete. In each thread, a global mutex (recursive type) is locked and then immediately unlocked, with status going to stdout via printf. There is no problem with this simple application and all threads run to completion after each gets the mutex lock in succession. To really test the mutex however, I simulated a pre-empted or otherwise blocked thread via a call to sched_yield() after locking the mutex and before unlocking it. In this version of the application, only the first thread to acquire the mutex lock completes (after successfully locking and unlocking the mutex), and all other threads hang waiting to acquire the mutex lock.
    Any insight on this problem or suspected problems with the code I described would be GREATLY appreciated! I would be happy to send the source to this simple application to anyone interested in observing it's behavior.
    Regards and thanks in advance.
    Chad Attermann
    telic.net

    Solaris 7 is shipped broken for recursive mutexes... You can fix it by using patch 106980-13 and everything it depends on...
    Good luck!

  • Solaris 8, 9 and 10 Security Files

    Good Morning:
    I am hoping that someone out there can confirm the following scenario:
    I want to use a standardized set of security files for all my operating systems Solaris 8, 9, and 10. The files from Solaris 10 and are listed below:
    /etc/default/passwd
    /etc/default/login
    /etc/security/policy.conf
    The questions I have are as follows:
    1. With the understanding that some of the security features may not work in Solaris 8 or Solaris 9, is there a problem in using these files across the all Operating systems?
    2. Are there any known issues with this approach?
    Mark K.

    Lars,
    Use ldmp2v to convert existing physical server to VM  and
    Convert Solaris 8 and 9 physical servers to container in Solaris 10 VM?
    Is that what you are saying?
    Major constraint I have is, applications running in the current physical servers have no vendor support, vendor doesn't exist any more. Application has been locked to run only on the same OS version. What I am worried is, while running ldmp2v should not prevent the application coming up in the new virtualized environment. Keeping that in mind, I gave a thought like
    1. Install and configure the CDOM (control domain)
    2. configure and Install LDOMs with Solaris 10 OS
    3. Run flar on the existing Solaris 10 physical server
    4. Transfer the flar created to Solaris 10 LDOM and configure it as a zone
    5. For Solaris 8 and 9, create LDOMs with Solaris 10 OS
    6. Install additional patches and packages needed for supporting Solaris 8 and 9 zones
    6. create flar images on the existing Solaris 8 and 9 physical servers
    7. transfer the images to newly created LDOM and configure the zone.
    8. Current servers sun4u which has to be converted to sun4v.

  • Solaris 8, 9, and 10 zones in logical domains

    We are planning to migrate our current environment to T5-2.
    Current application environment is running with Solaris 8, 9 and 10 OS versions in V8* series and M5000.
    Our plan is to install multiple logical domains in T5-2 with Solaris 10 or 11 and migrate the current running Solaris 8, 9 and 10 servers as zones. Plan is to create the flash using flar and restore in the target T5-2.
    Will there be any issue with the said OS versions on migration?
    Please suggest.

    Lars,
    Use ldmp2v to convert existing physical server to VM  and
    Convert Solaris 8 and 9 physical servers to container in Solaris 10 VM?
    Is that what you are saying?
    Major constraint I have is, applications running in the current physical servers have no vendor support, vendor doesn't exist any more. Application has been locked to run only on the same OS version. What I am worried is, while running ldmp2v should not prevent the application coming up in the new virtualized environment. Keeping that in mind, I gave a thought like
    1. Install and configure the CDOM (control domain)
    2. configure and Install LDOMs with Solaris 10 OS
    3. Run flar on the existing Solaris 10 physical server
    4. Transfer the flar created to Solaris 10 LDOM and configure it as a zone
    5. For Solaris 8 and 9, create LDOMs with Solaris 10 OS
    6. Install additional patches and packages needed for supporting Solaris 8 and 9 zones
    6. create flar images on the existing Solaris 8 and 9 physical servers
    7. transfer the images to newly created LDOM and configure the zone.
    8. Current servers sun4u which has to be converted to sun4v.

  • Multi-Processor Systems vs Single Processor systems

    In general, is it better to run Weblogic on a fast single processor system
    or on a multi-processor system where the individual cpus are less powerful?
    I am assuming that the platforms are WINTEL and all other things (memory,
    disk channels etc) are equal.
    What are the licensing implications of one philosophy over the other?

    Jim Ewing wrote:
    >
    In general, is it better to run Weblogic on a fast single processor system
    or on a multi-processor system where the individual cpus are less powerful?
    I am assuming that the platforms are WINTEL and all other things (memory,
    disk channels etc) are equal.You'll hate me for saying this, but it depends on your application and
    your client load.
    I'd suggest that you run a load test against both systems and compare
    the results.
    >
    What are the licensing implications of one philosophy over the other?You pay for WLS by the number of CPUs.
    -- Rob
    Coming Soon: Building J2EE Applications & BEA WebLogic Server
    by Michael Girdley, Rob Woollen, and Sandra Emerson
    http://learnweblogic.com

Maybe you are looking for

  • HT1420 Once I deauthorize this computer, can I reauthorize it later?

    Our family has a lot of computers and 5 of them ended up using my iTunes account (kids of ours). The problem is that MY computer recently died and my geek son-in law put my harddrive into my husbands case or something like that. Anyway, long story sh

  • How do I scan with a white background? Instead of a black background.

    WHen I scan something with my flatbed scanner there is black All around the area expect for the image or documents I am scanning. How do I remove or scan to where it will be white in the background ?

  • Help me about queue

    there are many user's mailbox in my server is over quota ,so the messages send to these user will been returned to sender by postmaster of course,the messages from spam sender counld not be return to sender ,so there are many messages stay in my tcp_

  • APs going to controllers that have AP Fallback disabled- maddening

    Adding a new 8510 HA Pair to an existing large environment. The 8510s are up with management addresses, and AP fallback is disabled. Basically, these are controllers that are being configured as time allows and so need to be on the wire. Typically, d

  • Can't Install FB 3

    I have downloaded FlexBuilder 3, and when I go to install it, I keep getting the same error message. I'd like to install the CF extensions, and the JavaScript extensions, so I've tried installing with and without those extensions. The error message i