• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
RE: calling sysctl at startup - how?
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: calling sysctl at startup - how?


  • Subject: RE: calling sysctl at startup - how?
  • From: Norm Green <email@hidden>
  • Date: Thu, 3 Jan 2008 21:10:52 -0800

Thanks, sysctl.conf did the job.

 

The app is 64-bit and I use 1 large shared memory segment because it needs to be contiguous. 

 

BTW, I’ve had some trouble when my program detaches and attaches an existing memory segment several times.  After the 3rd or 4th call to shmat(), it starts to fail using an address that previously succeeded.  I usually need to specify the address because my app needs it to be 16 KB aligned and shmat() seems to return 4 KB aligned addresses.  To get around this, I keep rolling the address forward by 16 KB until I find one that works.

 

Norm Green

 


From: Terry Lambert [mailto:email@hidden]
Sent: Thursday, January 03, 2008 8:49 PM
To: Norm Green
Cc: email@hidden
Subject: Re: calling sysctl at startup - how?

 

man sysctl.conf

 

You will probably not end up happy setting it to 2G, unless your application is 64 bit and makes multiple segments adjacent to each other, rather than 1 big segment, or you refuge the page 0 size to 4K in your 64 bit app so that allocations can happen below the 4G boundary.  32 bit apps are only going to find about 1.5G of contiguous address space available to them because of frame buffers, framewoks, etc..

 

PS: My usual recommendation at this point is that you mmap() a file instead to get your shared memory, if you need to avoid these limits. This has the (usually desirable) side effect of creating persistent backing store for the segment contents, as well.

 

-- Terry

On Jan 3, 2008, at 6:31 PM, Norm Green <email@hidden> wrote:

What is the “right” way to run a sysctl command when the system boots up?  I’ve read that using the /etc/rc.* files is discouraged.  I want to run this command to enable large amounts of shared memory when the system boots:

 

sysctl -w kern.sysv.shmmax=0x80000000 kern.sysv.shmseg=8 kern.sysv.shmall=0x80000000

 

 

Thanks,

 

 

Norm Green

 

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: calling sysctl at startup - how?
      • From: Terry Lambert <email@hidden>
  • Prev by Date: Re: calling sysctl at startup - how?
  • Next by Date: Re: calling sysctl at startup - how?
  • Previous by thread: Re: calling sysctl at startup - how?
  • Next by thread: Re: calling sysctl at startup - how?
  • Index(es):
    • Date
    • Thread