Maximum number of supported MSI messages

A device can support line interrupts, MSI (Message Signaled Interrupts) and MSI-X (Message Signaled Interrupts - Extended). Some devices does support only line interrupts, some support line interrupts and MSI, and some devices support all three types. Operating systems provide functions using which it is possible to find some of the information in the hardware populated by vendors based on standards. Function pci_msi_count() returns the maximum number of supported MSI messages. This maximum number is hardware specific. Some hardware supports upto 32 MSI messages, where as some hardwares supports only 8 and some hardwares doesn't have support for MSI at all. If MSI is not supported by a hardware, this function returns 0. We can also use pci_msi_count() to determine a PCI device's MSI support runtime. If the device has support for MSI, return value from pci_msi_count() will be a number greater than 0.

Read More...
Bookmark and Share
Your Ad Here

MSI support in a PCI device

A PCI device optionally can support MSI (Message Signaled Interrupts) and/or MSI-X (Message Signaled Interrupts - Extended) interrupts. Even a device supports MSI or MSI-X, driver for that device may not support them. This can be due to either lack of support in OS or driver itself. Whether the driver has support for MSI/MSI-X or not, it is possible to find a device's support for MSI/MSI-X through its PCI configuration space. Run "pciconf -lvc" and find that device's info. Example: Neterion Xframe-II 10Gigabit Ethernet Adapter xge0@pci1:3:0: class=0x020000 card=0x602017d5 chip=0x583217d5 rev=0x02 hdr=0x00 vendor = 'S2IO Technologies' device = 'Xframe II 10Gbps Ethernet' class = network subclass = ethernet cap 05[40] = MSI supports 32 messages, 64 bit, vector masks cap 07[60] = PCI-X 64-bit supports 133MHz, 266MHz, 4096 burst read, 32 split This device suports 32 MSI messages.

Read More...
Bookmark and Share
Your Ad Here

Apple Safari Browser

Safari is one of the good web browsers and can be found in Apple's Mac OS. It is good not just in GUI, but also in performance, bookmarks, pop-up blocking, search, tabbed browsing, forms autofill, built-in RSS, Security, and other features. You can find comparisons between different browsers along with Safari at Apple Safari page here.
Apple has released Safari web browser for Windows. Now we can have a feel of Mac web browsing in Windows. You can find Safari here. Safari browser supports tabbed windows similar to Mozilla Firefox and Internet Explorer. It is found to be fast compared to other browsers.

Read More...
Bookmark and Share
Your Ad Here

Mac OS X Network Tuning

Network tuning is done based on network performance requirements and mainly based on the specific applications using network. The network tuning is mostly changing trasnmit and receive socket buffer and window sizes at the Kernel. Each Operating System provide different ways of tuning network stack by changing socket buffer and window sizes. Adam Knight explains network tuning concepts in Mac OS X here. You can find some info on tuning through sysctls, new reno fast recovery method, selective acknowledgements, window sizes, maximum segment size, sockets and connections.

Read More...
Bookmark and Share
Your Ad Here

Why FreeBSD

The FreeBSD operating system is the unknown giant among free operating systems. Starting out from the 386BSD project, it is an extremely fast UNIX®-like operating system mostly for the Intel® chip and its clones. In many ways, FreeBSD has always been the operating system that GNU/Linux®-based operating systems should have been. It runs on out-of-date Intel machines and 64-bit AMD chips, and it serves terabytes of files a day on some of the largest file servers on earth. Frank Pohlmann explains reasons for choosing FreeBSD over other operating systems here.

Read More...
Bookmark and Share
Your Ad Here

Why did they choose FreeBSD?

FreeBSD is a Open source UNIX operating system maintained by the FreeBSD community (http://www.freebsd.org). FreeBSD provides many new features which are provided by some and yet to be implemented in other leading Operating Systems. Earlier, FreeBSD was considered only for servers due to the need of keeping servers stable, secure, less maintenance etc. But now, it is being used even for desktops. Harvey Allen, Brian Candler, and Joel Jaeggli explains why did they opt for FreeBSD here (pdf). Some key points in it: * WhyFreeBSD in general? * Why FreeBSD rather than Linux? * Why FreeBSD rather than Windows?

Read More...
Bookmark and Share
Your Ad Here

FreeBSD Kernel Compilation

At any time, if we do any change in the FreeBSD Kernel like a new feature implemented in the Kernel, or a Kernel module, a new driver included in the Kernel, fixing issues in Kernel etc. it requires building the updated Kernel source files and other dependent modules. You can find a way of building Kernel in a previous post. Here is one more way of building FreeBSD Kernel. Before this step, building world is required. If you want to build a custom kernel, and already have a configuration file, just use KERNCONF=MYKERNEL like this: # cd /usr/src # make buildkernel KERNCONF=MYKERNEL # make installkernel KERNCONF=MYKERNEL Source: FreeBSD Handbook

Read More...
Bookmark and Share
Your Ad Here

Adding DNS server entries

In most UNIX-variant operating systems, all DNS server entries will be in a configuration file /etc/resolv.conf. The resolv.conf configuration file will have entries for each DNS server which stores alpha-numeric name to numeric IP address mapping. For example, an entry "nameserver 1.2.3.4" in resolv.conf indicates that the DNS server to be accessed for all name-to-IP address mapping is 1.2.3.4 To add a new DNS server entry, append resolv.conf with new DNS server entry in the format "nameserver ". Example to add DNS server 5.6.7.8: nameserver 5.6.7.8 For the just added entry to be effective, it requires restarting network services. Run #/etc/netstart

Read More...
Bookmark and Share
Your Ad Here

Custom FreeBSD Kernel compilation

I normally use this way of building custom FreeBSD Kernel. Make sure that you are a root to continue with this.

Kernel source path:
Default path for FreeBSD kernel sources is /usr/src/sys. We can have kernel sources anywhere in the file system (it can be our home directories). I assume that the kernel sources are at /usr/src/sys in the below example.

Architecture:
Architecture can be i386, amd64, sparc etc. Through uname command you can find out the archicture under use. In the below example, I assume that the architecture is amd64.

Kernel Configuration:
Kernel configuration files are located at /usr/src/sys/amd64/conf directory. GENERIC is the kernel configuration which will be used most of the time. You can add or delete certain configurations based on the requirement. Some of the configurations which will be enabled in CURRENT (pre-release) and which result in reduced performance are WITNESS, INVARIANTS, DIAGNOSTIC etc. To build kernel excluding some options either remove those lines or comment out them (by prefixing a # symbol at the start of line). It is a good practice to have a copy of original GENERIC file. So I prefer to have a copy of it and update new file rather than GENERIC file itself.

I assume that the new configuration file has name "MYKERNEL". Run "config MYKERNEL" in /usr/src/sys/amd64/conf directory. This creates a directory with name "MYKERNEL" (name same as kernel configuration file) under compile in architecture directory. Now, change directory to "/usr/src/sys/amd64/compile/MYKERNEL" directory. Run "make cleandepend && make depend && make" to build kernel.

If there are any failures in any of those steps, you will get built kernel in the same directory. You can install newly built kernel using "make install" in the same directory. Reboot now, to boot your machine with newly build kernel.

Read More...
Bookmark and Share
Your Ad Here