• Alexander Duyck's avatar
    ioat: Do not enable DCA if tag map is invalid · 07bd34db
    Alexander Duyck authored
    I have encountered several systems that have an invalid tag map.  This
    invalid tag map results in only two tags being generated 0x1F which is
    usually applied to the first core in a Hyper-threaded pair and 0x00 which
    is applied to the second core in a Hyper-threaded pair.  The net result of
    all this is that DCA causes significant cache thrash because the 0x1F tag
    will send traffic to the second socket, which the 0x00 tag will not DCA tag
    the frame resulting in no benefit.
    
    For now the best solution from the driver's perspective is to just disable
    DCA if the tag map is invalid.  The correct solution for this would be to
    have the BIOS on affected systems updated so that the correct tags are
    generated for a given APIC ID.
    Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: default avatarStephen Ko <stephen.s.ko@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    07bd34db
dca.c 17.6 KB