1. A method of processing requests in a computer system comprising: receiving a request at a controller, wherein the request has an associated state, a tag and address; checking a snoop filter for the address; determining whether there is a tag match in the snoop filter; determining whether the state of the request is one of exclusive, shared, invalid and unknown; if the request is shared, determining whether the request is shared on one of a request bus and a remote bus; if the request is shared on the remote bus, tracking the request bus and remote bus as shared in a tag RAM; and if the request is shared on the request bus, tracking the request bus as shared in the tag RAM, wherein the tag is not associated with a castout penalty that is an occurrence of a castout snoop on a shared access without a net gain in precise snoop filter state information.