The Systemtap script:
# Array to hold the list of drop points we find
global locations
# Note when we turn the monitor on and off
probe begin { printf("Monitoring for dropped packets\n") }
probe end { printf("Stopping dropped packet monitor\n") }
# increment a drop counter for every location we drop at
#probe kernel.trace("kfree_skb") { locations[$location] <<< 1 }
# Every 5 seconds report our drop locations
probe timer.sec(5)
{
        printf("\n")
        foreach (l in locations-) {
                printf("%d packets dropped at location %p\n",
                           @count(locations[l]), l)
        }
        delete locations
}
and the source code of kfree_skb() is:
void kfree_skb(struct sk_buff *skb)
{
    if (unlikely(!skb))
        return;
    if (likely(atomic_read(&skb->users) == 1))
        smp_rmb();
    else if (likely(!atomic_dec_and_test(&skb->users)))
        return;
    trace_kfree_skb(skb, __builtin_return_address(0));
    __kfree_skb(skb);
}
I just want to know where is the $location from? And 
what is the relationship between $location and kfree_skb()?
Thank you.
                        
As per the stap.1 man page:
As per the stapprobes.3stap man page:
As per the linux kernel source code: