No announcement yet.


  • Filter
  • Time
  • Show
Clear All
new posts

  • CONFIG_X86_PAT=y

    The git (2.6.25-git8 or something) kernel has PAT support. And if configuring kernel with CONFIG_X86_PAT=y one sees a lot of problems (like decreased performance

    Here're some parts which might be relevant;
    [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
    [ 0.236008] x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106
    [ 0.240752] PCI: BIOS Bug: MCFG area at c0000000 is not E820-reserved
    [ 0.240802] PCI: Not using MMCONFIG.
    [ 0.240847] PCI: Using configuration type 1
    [ 0.245614] ACPI: EC: EC description table is found, configuring boot EC
    [ 0.260199] ACPI: Interpreter enabled
    [ 0.260201] ACPI: (supports S0 S1 S3 S4 S5)
    [ 0.260216] ACPI: Using IOAPIC for interrupt routing
    [ 0.261731] ACPI: Error attaching device data
    [ 0.261812] ACPI: Error attaching device data

    This messes with MTRR, dunno if it affects PAT too. This was already there with the previous (aka no-PAT) kernels.

    And here's the part of dmesg where fglrx gets confused with PATH:
    21.470803] Symbol init_mm is marked as UNUSED, however this module is using it.
    [ 21.470805] This symbol will go away in the future.
    [ 21.470806] Please evalute if this is the right api to use, and if it really is, submit a report the linux kernel mailinglist togethe
    r with submitting your code for inclusion.
    [ 21.480375] [fglrx] Maximum main memory to use for locked dma buffers: 3808 MBytes.
    [ 21.480398] [fglrx] ASYNCIO init succeed!
    [ 21.480400] [fglrx:KCL_enable_pat] *ERROR* Pat entry 2 is already configured
    [ 21.480402] [fglrx] PAT is disabled!
    [ 21.480417] [fglrx] module loaded - fglrx 8.47.3 [Mar 29 2008] on minor 0

    At firegl_public.c in function static int ATI_API_CALL KCL_enable_pat(void) there's a loop which bails out if PAT is already enabled and exits.

    for ( i = 0; i < 2; i++ )
    for (j = 0; j < 4; j ++)
    if (((KCL_orig_pat[i] >> (j * 8)) & 0xFF) == 1)
    __KE_ERROR("Pat entry %d is already configured\n", (i+1)*(j+1));
    return 0;

    I really don't have any idea why i goes from 0 to 1 and j from 0 to 3. I's just wondering maybe it shouldn't exit if some parts of PAT is already configured by kernel?

    So I just need to try if it's safe to call KCL_setup_pat even if PAT is already on

    I wonder if there is any documentation available for this PAT thing somewhere...
    Last edited by jjjj; 04-27-2008, 03:10 PM.

  • #2
    Hi everyone!

    In CONFIG_X86_PAT=y does not seem to exist, however dmesg says:
    [ 1904.023105] [fglrx] Adapter chains initialized successfully!
    [ 1904.023115] [fglrx] CF object manager initialized successfully!
    [ 1904.026508] [fglrx]   vendor: 1002 device: 791f count: 1
    [ 1904.026933] [fglrx] Maximum main memory to use for locked dma buffers: 2754 MBytes.
    [ 1904.027440] [fglrx] ASYNCIO init succeed!
    [ 1904.027766] [fglrx:KCL_enable_pat] *ERROR* Pat entry 2 is already configured
    [ 1904.027770] [fglrx] PAT is disabled!
    [ 1904.031069] [fglrx:firegl_init_module] *ERROR* firegl_stub_register failed
    Any Ideas how to solve this?

    Thank you!



    • #3
      I only get this error:

      [fglrx:KCL_enable_pat] *ERROR* Pat entry 2 is already configured

      When I'm suspending/hibernating, but besides displyaing the error, nothing bad happens, suspend and hibernate work perfectly.