In addition to what hicksd8 wrote, you should be aware that different tools might have a different idea about what free memory means. You should also state what Solaris version/update you are running.
I never use top under Solaris and I would suggest you to use
to get a better idea about your RAM usage.
For example if i have the piece of code as follows:
CountryName = (char *)malloc((strlen(CountryName)+1)*sizeof(char));
memset(CountryName, 0, strlen(CountryName)+1);
CountryName = SOME VALUE
Now how do i free the memory after use of this code???? :confused: (3 Replies)
Hi,
Im working on Solaris 9 on SPARC-32 bit running on an Ultra-80, and I have to find out the following:-
1. Total Physical Memory in the system(total RAM).
2. Available Physical Memory(i.e. RAM Usage)
3. Total (Logical) Memory in the system
4. Available (Logical) Memory.
I know... (4 Replies)
Hi all,
Could please let me know how to get the more memory free space (not added the RAM) in local zone.
-bash-3.00# vmstat 2 5
kthr memory page disk faults cpu
r b w swap free re mf pi po fr de sr s0 s1 s1 s1 in sy cs us sy... (3 Replies)
I was running a program and it stopped and showed "Out of Memory!". at that time, the RAM used by this process is around 4G and the free memory size of the machine is around 30G. Does anybody know what maybe the reason? this program is written with Perl. the OS of the machine is Solaris U8. And I... (1 Reply)
Hi,
I have a problem one of the server file system cross the limitation
MountPoint / is 8% with 899.49MB free crossing threshold of 10% free
out put please help how to resolve this
dev/vx/dsk/bootdg/rootvol
9.8G 8.8G 956M 91% /
/devices ... (3 Replies)
Hi guys.
I've a question, if we are using a syscall that receives a string allocated dynamicaly to a determined size, or NUL and it will allocate the apropriate size. We should free the memory or the OS will do it for us?
If a function returns a pointer we should free that poiter when we are done... (7 Replies)
Calling upon all Solaris zone experts.
I have a Sun T3-1 that is running a few whole-root zones. I've set the 'capped-memory' setting on all the zones.
However, I have a problem on the one zone. Under load it uses more memory that has been allocated to it.
zonecfg -z sunrep02 export
... (4 Replies)
hi guys
the monitoring team is using a tool for monitoring linux boxes and they set an alarm for swap memory to 10%(critical) I really has no idea when swap memory usage is high....
Can someone recommend me a threshold for this? when is warning or critical and this parameters can affect... (3 Replies)
Hello Folks,
I have created the script which use to send email notification when server memory breach the threshold limits. Script works fine, but the issue is sometimes i am receiving mail alerts for lower threshold memory also.
Please let me know why and any updates required in script?
... (7 Replies)
Discussion started by: seenuvasan1985
7 Replies
LEARN ABOUT SUNOS
bcopy
bcopy(9F) Kernel Functions for Drivers bcopy(9F)NAME
bcopy - copy data between address locations in the kernel
SYNOPSIS
#include <sys/types.h>
#include <sys/sunddi.h>
void bcopy(const void *from, void *to, size_t bcount);
INTERFACE LEVEL
Architecture independent level 1 (DDI/DKI).
PARAMETERS
from Source address from which the copy is made.
to Destination address to which copy is made.
bcount The number of bytes moved.
DESCRIPTION
bcopy() copies bcount bytes from one kernel address to another. If the input and output addresses overlap, the command executes, but the
results may not be as expected.
Note that bcopy() should never be used to move data in or out of a user buffer, because it has no provision for handling page faults. The
user address space can be swapped out at any time, and bcopy() always assumes that there will be no paging faults. If bcopy() attempts to
access the user buffer when it is swapped out, the system will panic. It is safe to use bcopy() to move data within kernel space, since
kernel space is never swapped out.
CONTEXT
bcopy() can be called from user or interrupt context.
EXAMPLES
Example 1: Copying data between address locations in the kernel:
An I/O request is made for data stored in a RAM disk. If the I/O operation is a read request, the data is copied from the RAM disk to a
buffer (line 8). If it is a write request, the data is copied from a buffer to the RAM disk (line 15). bcopy() is used since both the RAM
disk and the buffer are part of the kernel address space.
1 #define RAMDNBLK 1000 /* blocks in the RAM disk */
2 #define RAMDBSIZ 512 /* bytes per block */
3 char ramdblks[RAMDNBLK][RAMDBSIZ]; /* blocks forming RAM
/* disk
...
4
5 if (bp->b_flags & B_READ) /* if read request, copy data */
6 /* from RAM disk data block */
7 /* to system buffer */
8 bcopy(&ramdblks[bp->b_blkno][0], bp->b_un.b_addr,
9 bp->b_bcount);
10
11 else /* else write request, */
12 /* copy data from a */
13 /* system buffer to RAM disk */
14 /* data block */
15 bcopy(bp->b_un.b_addr, &ramdblks[bp->b_blkno][0],
16 bp->b_bcount);
SEE ALSO copyin(9F), copyout(9F)
Writing Device Drivers
WARNINGS
The from and to addresses must be within the kernel space. No range checking is done. If an address outside of the kernel space is
selected, the driver may corrupt the system in an unpredictable way.
SunOS 5.10 4 August 2003 bcopy(9F)